ScrollViewer显示两个滚动

时间:2016-05-16 17:56:27

标签: wpf

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

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

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

enter image description here

你怎么看我的内部卷轴(工作)和外部卷轴,即ScrollViewer。

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

感谢。

2 个答案:

答案 0 :(得分:2)

如果固定Text

Height太多,则可以看到两个滚动条

尝试为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"/>

答案 1 :(得分:0)

问题是您在多行ScrollViewer外部使用TextBoxScrollViewer意味着包含一堆UI元素,否则这些元素会占用大量空间。我能做的最好的比较是一个网页。浏览器充当ScrollViewer,网页就是内容。

如果您只需要TextBox,则不需要ScrollViewer。但是,如果您确实想要使用ScrollViewer,则在不需要时将删除滚动条:

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