Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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
C# WPF中文本框中的ScrollToCaret在哪里?_C#_Wpf_Textbox - Fatal编程技术网

C# WPF中文本框中的ScrollToCaret在哪里?

C# WPF中文本框中的ScrollToCaret在哪里?,c#,wpf,textbox,C#,Wpf,Textbox,我找不到那个函数。基本上我有一个多行文本框,当我执行搜索时,我突出显示结果。但是如果结果不在视图中,我必须手动向下滚动,直到找到突出显示的结果,这超出了“查找”功能的目的 我不想使用RichTextBox,因为我遇到了一些性能问题 您可以结合使用: 滚动线对我来说不够准确。我的文本框已启用换行,因此行索引不可靠。相反,我用了这个: textBox.CaretIndex = selectionStart; textBox.ScrollToEnd(); textBox.Select(selectio

我找不到那个函数。基本上我有一个多行文本框,当我执行搜索时,我突出显示结果。但是如果结果不在视图中,我必须手动向下滚动,直到找到突出显示的结果,这超出了“查找”功能的目的

我不想使用RichTextBox,因为我遇到了一些性能问题

您可以结合使用:


滚动线对我来说不够准确。我的文本框已启用换行,因此行索引不可靠。相反,我用了这个:

textBox.CaretIndex = selectionStart;
textBox.ScrollToEnd();
textBox.Select(selectionStart, selectionLength);

基本上,ScrollToEnd执行到插入符号的滚动。

注意,您应该使用
textBox.ScrollToLine(textBox.GetLineIndexFromCharacterIndex(textBox.SelectionStart))
,而不是
SelectionStart
。调用
Select
时,如果范围超过文本长度,则WPF map将剪辑该范围,如果将太大的内容传递给
GetLineIndexFromCharacterIndex
,则会引发异常。其工作方式类似于符咒。如果要查看所选内容,需要将Textbox
Textbox.focus()对焦如果文本水平离开屏幕,则不确定该选项是否有效。它将转到行而不是“列”。ScrollToEnd执行它所说的操作:它滚动到内容的末尾
将编辑控件的视图滚动到内容的末尾。
甚至微软也这么说!
textBox.CaretIndex = selectionStart;
textBox.ScrollToEnd();
textBox.Select(selectionStart, selectionLength);