WPF Richtextbox で特定の単語を選択して色付けしようとしていますが、私の方法では単語の最初の 5 文字だけが選択されます。私のrtbの最初の単語は「プライベート」であり、その前に空の文字列はありませんが、インデックス0、1、および2は空の文字列のようです。
この問題の原因は何ですか?
public void FormatRtbText(RichTextBox rtb)
{
int x, y;
string str = "private";
var text = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd).Text;
x = text.IndexOf(str);
y = x + str.Length;
var range = new TextRange(rtb.Document.ContentStart.GetPositionAtOffset(x), rtb.Document.ContentStart.GetPositionAtOffset(y));
range.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Red);
}