[英]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為您提供內容的純字符串。 現在,您可以使用以下字符串與正則表達式/子字符串一起使用:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.