有没有办法滚动,例如,从C#代码滚动到RichTextBox的开头?我正在以编程方式填充其内容(包含图像和运行文本的段落),当填充完成时,滚动的位置位于RichTextBox的底部 . 我想将它设置为顶部,而不是底部 .
我试图创建一个使用ScrollViewer包装我的RichTextbox的解决方法:但是当我在ScrollViewer上调用它的ScrollToVerticalOffset没有任何反应时,UI不会更新 .
您需要到达RichTextBox控件内部以获取其内部 ScrollViewer 然后调用 ScrollToVerticalOffset . 这是在 VisualTreeHelper 的帮助下完成的,请参阅此blog以获取一些有用的扩展方法的小源代码 . 使用 VisualTreeEnumeration 类,您可以使用以下代码获取 ScrollViewer
ScrollViewer
ScrollToVerticalOffset
VisualTreeHelper
VisualTreeEnumeration
ScrollViewer sv = myRichTextBox.Descendents().OfType<ScrollViewer>().FirstOrDefault();
尝试rtb.Selection.Select(rtb.ContentStart,rtb.ContentStart);滚动开始
和rtb.Selection.Select(rtb.ContentEnd,rtb.ContentEnd);滚动到结束
2 回答
您需要到达RichTextBox控件内部以获取其内部
ScrollViewer
然后调用ScrollToVerticalOffset
. 这是在VisualTreeHelper
的帮助下完成的,请参阅此blog以获取一些有用的扩展方法的小源代码 . 使用VisualTreeEnumeration
类,您可以使用以下代码获取ScrollViewer
尝试rtb.Selection.Select(rtb.ContentStart,rtb.ContentStart);滚动开始
和rtb.Selection.Select(rtb.ContentEnd,rtb.ContentEnd);滚动到结束