1

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);

    }
4

2 に答える 2