RichTextBox:查找相应的索引

时间:2012-02-27 19:36:12

标签: c# wpf richtextbox

说我有一个WPF RichTextBox,内容如下:

Hello Hello // <== here is a line break \r\n
Turn Your Radio On!

然后,我使用以下代码阅读包装盒中的文字:

public static string GetText(this RichTextBox box)
{
    var range = new TextRange(box.Document.ContentStart,
                            box.Document.ContentEnd);

    return range.Text;
}

之后我检索var index = text.IndexOf("Hello\r\nTurn")var length = "Hello\r\nTurn".Length 基于indexlength如何在RichTextBox中选择该文本?普通字符串中的index/lengthRichTextBox期望的内容不匹配。

我尝试了answer here的方法,但如果文本包含换行/段落,这似乎不起作用。

注意:我的字符串操作(查找index / length)比示例复杂得多,但这里给出的示例很好地描述了我的问题

1 个答案:

答案 0 :(得分:0)

RichTextBox有一个Selection属性,您可以将其称为“Select”方法。 它接受2个TextPointer对象,一个用于选择开始,另一个用于结束。

http://msdn.microsoft.com/en-us/library/system.windows.documents.textrange.select.aspx

我认为索引和长度属性不足以让您选择文本。你必须得到真正的TextPointer。

尝试使用方法查找特定单词TextPointers,例如此处指定的单词

http://blogs.microsoft.co.il/blogs/tamir/archive/2006/12/14/RichTextBox-syntax-highlighting.aspx