use*_*774 2 c# wpf scroll textbox scrollviewer
在XAML中,我设置了一个包含ScrollViewer的Grid,其中包含一个TextBox:
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="MainWindow_OnLoaded">
<Grid>
<ScrollViewer>
<TextBox Name="TempTextBox" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"></TextBox>
</ScrollViewer>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
然后我(在C#中以编程方式)在该文本框中添加了一堆文本.很多台词.大多数情况下,垂直滚动按照我的预期工作:我可以单击并拖动滚动条抓取; 我可以点击抓取器上方或下方的滚动条; 我可以使用向上和向下箭头键; 我可以使用Ctrl-Home和Ctrl-End.所有这一切都很好.但:
如果我使用Page Up或Page Down键,就好像我使用了Ctrl-Home或Ctrl-End.也就是说,它会转到文本的顶部或底部,而不是向上或向下翻页.
难道我做错了什么?我很确定这不是像"你的Ctrl键被卡住"这样的问题,因为Page Up和Page Down在我的计算机上的其他应用程序中运行良好.
删除ScrollViewer.
TextBox具有开箱即用的滚动支持,它不需要这个上瘾控件'ScrollViewer'来滚动.在TextBox中设置ScrollViewer.VerticalScrollBarVisibility ="Auto",但不要使用ScrollViewer包装TextBox,你很高兴.
您正在提供两种相互冲突的滚动可能性.
我有一个带有ScrollViewer.VerticalScrollBarVisibility ="Auto"的TextBox,没有ScrollViewer,Page Up和Page Down工作正常.
为了测试,我在'TextBox'周围添加了'ScrollViewer',然后它开始显示你所说的相同问题.