我試圖突出顯示RichTextBox中的一行。我的嘗試是在文本中獲取該行的位置,然後創建代表text.Substring(offset, word.Length)
的TextRange。但不知何故,RichTextBox只會突出顯示前一行的最後2個字符以及實際行的一些字符或實際行的部分字符。我目前的做法是這樣的一個:突出顯示RichTextBox中的一行
public void SelectLine(string text)
{
int i = new TextRange(editor.Document.ContentStart, editor.Document.ContentEnd).Text.IndexOf(text);
TextPointer start = editor.Document.ContentStart.GetPositionAtOffset(i);
TextPointer end = start.GetPositionAtOffset(text.Length);
TextRange r = new TextRange(start, end);
if (r != null)
{
r.ApplyPropertyValue(TextElement.BackgroundProperty, Brushes.Red);
r.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.White);
}
}
,這是它的樣子,當我試圖選擇第二行:
你有任何想法,爲什麼發生這種情況?
編輯: 我目前的做法包括一個WPF RichTextBox。