C# RichTextBox:查找相应的索引

C# RichTextBox:查找相应的索引,c#,wpf,richtextbox,C#,Wpf,Richtextbox,假设我有一个包含以下内容的WPFRichTextBox: Hello Hello // <== here is a line break \r\n Turn Your Radio On! 之后,我检索var index=text.IndexOf(“Hello\r\nTurn”)和var length=“Hello\r\nTurn”.length 基于索引和长度: 如何在RichTextBox中选择该文本?普通字符串中的索引/长度与RichTextBox的预期不匹配 我尝试了从中的方法,但

假设我有一个包含以下内容的
WPF
RichTextBox

Hello Hello // <== here is a line break \r\n
Turn Your Radio On!
之后,我检索
var index=text.IndexOf(“Hello\r\nTurn”)
var length=“Hello\r\nTurn”.length

基于
索引
长度
如何在RichTextBox中选择该文本?普通字符串中的
索引/长度
RichTextBox
的预期不匹配

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


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

RichTextBox有一个选择属性,您可以调用它的“选择”方法。 它接受两个TextPointer对象,一个用于选择开始,另一个用于选择结束

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

尝试使用一种方法来查找特定的单词TextPointer,如此处指定的-


我尝试了GetPositionAtOffset,但没有任何帮助。@H.B.我在标题中添加了WPF,以表明它与WinForms RichTextBox无关。这是不是让人泄气了?@yas4891:是的,因为我们有标签区。人们通常在做出假设之前检查标签,尤其是在不明显的情况下。(你甚至在第一句话中提到了WPF,所以应该非常清楚)
public static string GetText(this RichTextBox box)
{
    var range = new TextRange(box.Document.ContentStart,
                            box.Document.ContentEnd);

    return range.Text;
}