簡體   English   中英

如何從WPF RichTextBox中選擇文本,然后替換文本並為其着色

[英]How to select text from WPF RichTextBox then replace and color it

我試圖使我的WPF RichTextBox看起來像一個編碼頁。

我標記了一些單詞來確定它是關鍵字還是字符串,...現在我有了這樣的文本:

<@$keyword>int<keyword$@> sum;

sum = 1;

Console.WriteLine(<@$string>"{0}"<string$@>,sum);

結果應該是這樣的:

int sum;
sum = 1;
Console.WriteLine("{0}",sum);

但是“ int”是藍色,“ {0}”是粉紅色。

這是我的xaml RichTextBox代碼:

<RichTextBox x:Name="richTextBox"
                     VerticalScrollBarVisibility="Auto">
            <FlowDocument>
                <Paragraph>
                    <Run Text="{Binding codeContent}"/>
                </Paragraph>
            </FlowDocument>
        </RichTextBox>

我的問題是指此stackoverflow問題,但似乎無法解決我的問題。

由於我的WPF RichTextBox內置了FlowDocument,因此無法通過String st = myRichtextBox.Text類的內容獲取內容文本,我們需要使用TextRange來獲取其中的文本: TextRange tr = new TextRange(rtb.Document.ContentStart,rtb.Document.ContentEnd)

但是另一個問題是它獲取了整個文本,而不是我想要的內容文本的一部分。 示例:RichTextBox rtb包含: <@$keyword>int<keyword$@> sum;sum = 1;Console.WriteLine(<@$string>"{0}"<string$@>,sum); 我只想獲取<@$keyword>int<keyword$@><@$string>"{0}"<string$@>而不是編輯整個文本。

TextRange tr = new TextRange(rtb.Document.ContentStart,rtb.Document.ContentEnd) 

tr.Text為您提供內容的純字符串。 現在,您可以使用以下字符串與正則表達式/子字符串一起使用:

如何從RichTextBox中選擇文本,然后為其着色?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM