WPF中TextBox中的ScrollToCaret在哪里?

时间:2012-11-29 08:23:42

标签: c# wpf textbox

我无法找到该功能。基本上我有一个多行文本框,当我执行搜索时,我突出显示结果。但是如果结果不在视图中,我将不得不手动向下滚动,直到找到突出显示的结果,这比“查找”功能的目的要好。

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

3 个答案:

答案 0 :(得分:8)

您可以将GetLineIndexFromCharacterIndexScrollToLine结合使用:

var selectionStart = x;
var selectionLength = y;
textBox.Select(selectionStart, selectionLength);
textBox.ScrollToLine(textBox.GetLineIndexFromCharacterIndex(textBox.SelectionStart));

答案 1 :(得分:-1)

我找到了一种稍微简单的方法。

textbox.ScrollToLine(textbox.LineCount - 1);

答案 2 :(得分:-1)

ScrollToLine对我来说不够准确。我的文本框启用了包装,因此Line Index不可靠。相反,我使用了这个:

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

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