说我有一个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
基于index
和length
:
如何在RichTextBox中选择该文本?普通字符串中的index/length
与RichTextBox
期望的内容不匹配。
我尝试了answer here的方法,但如果文本包含换行/段落,这似乎不起作用。
注意:我的字符串操作(查找index
/ length
)比示例复杂得多,但这里给出的示例很好地描述了我的问题
答案 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