Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf ScrollViewer显示两个滚动条_Wpf - Fatal编程技术网

Wpf ScrollViewer显示两个滚动条

Wpf ScrollViewer显示两个滚动条,wpf,Wpf,我正在尝试创建一个简单的日志可视化工具,因此我执行了以下操作: <ScrollViewer> <TextBox TextWrapping="Wrap" AcceptsReturn="True" Height="240" IsReadOnly="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Scro

我正在尝试创建一个简单的日志可视化工具,因此我执行了以下操作:

<ScrollViewer>
            <TextBox TextWrapping="Wrap" AcceptsReturn="True" Height="240" IsReadOnly="True"
                     ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
                     ScrollViewer.VerticalScrollBarVisibility="Auto"
                     ScrollViewer.CanContentScroll="True"
                     />
 </ScrollViewer>

ScrollViewer在一个GroupBox中,我可以在代码后面正确地管理它,但问题是我有以下UI结果:

你可以看到我有一个内部的滚动条(可以正常工作)和一个外部的滚动条,那就是ScrollViewer

这很奇怪,wpf不会自动只使用一个滚动条吗?如何隐藏外部滚动条,或者无论如何,只显示控件的一个滚动条


谢谢。

如果固定高度的
文本过多,两个滚动条都可见

尝试设置ScrollViewer的高度

<ScrollViewer Height="240">
<TextBox TextWrapping="Wrap" AcceptsReturn="True" IsReadOnly="True"
         HorizontalScrollBarVisibility="Disabled" 
         VerticalScrollBarVisibility="Auto"
         ScrollViewer.CanContentScroll="True"/>
</ScrollViewer>

或者完全删除ScrollViewer

<TextBox TextWrapping="Wrap" AcceptsReturn="True" Height="240" IsReadOnly="True"
         HorizontalScrollBarVisibility="Disabled" 
         VerticalScrollBarVisibility="Auto"
         ScrollViewer.CanContentScroll="True"/>

如果固定高度的
文本过多,则两个滚动条都可见

尝试设置ScrollViewer的高度

<ScrollViewer Height="240">
<TextBox TextWrapping="Wrap" AcceptsReturn="True" IsReadOnly="True"
         HorizontalScrollBarVisibility="Disabled" 
         VerticalScrollBarVisibility="Auto"
         ScrollViewer.CanContentScroll="True"/>
</ScrollViewer>

或者完全删除ScrollViewer

<TextBox TextWrapping="Wrap" AcceptsReturn="True" Height="240" IsReadOnly="True"
         HorizontalScrollBarVisibility="Disabled" 
         VerticalScrollBarVisibility="Auto"
         ScrollViewer.CanContentScroll="True"/>

问题在于您在多行
文本框的外部使用了
滚动查看器
。ScrollViewer
包含一组UI元素,否则会占用大量空间。我能做的最好的比较就是一个网页。浏览器充当滚动查看器,网页是内容

如果您只需要
文本框
,则不需要
滚动查看器
。但是,如果您确实想使用
ScrollViewer
,这将在不需要滚动条时取消滚动条:

        <ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Auto" CanContentScroll="True">
            <TextBox TextWrapping="Wrap" AcceptsReturn="True" Height="240" IsReadOnly="True" VerticalScrollBarVisibility="Auto" />
        </ScrollViewer>

问题在于您在多行
文本框的外部使用了
滚动查看器
。ScrollViewer
包含一组UI元素,否则会占用大量空间。我能做的最好的比较就是一个网页。浏览器充当滚动查看器,网页是内容

如果您只需要
文本框
,则不需要
滚动查看器
。但是,如果您确实想使用
ScrollViewer
,这将在不需要滚动条时取消滚动条:

        <ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Auto" CanContentScroll="True">
            <TextBox TextWrapping="Wrap" AcceptsReturn="True" Height="240" IsReadOnly="True" VerticalScrollBarVisibility="Auto" />
        </ScrollViewer>

为什么不直接跳过