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가 포함되어 있습니다.