C# 如何从WPF RichTextBox中选择文本,然后将其替换并上色

C# 如何从WPF RichTextBox中选择文本,然后将其替换并上色,c#,wpf,C#,Wpf,我试图使我的WPF RichTextBox看起来像一个编码页面 我标记了一些单词以确定它是关键字还是字符串,。。。现在我有这样的文本: int sum; sum = 1; Console.WriteLine("{0}",sum); 整数和 总和=1 Console.WriteLine{0},sum 结果应该是这样的: int sum; sum = 1; Console.WriteLine("{0}",sum); 但是int是蓝色的,{0}是粉红色的 以下是我的xaml RichTextBox

我试图使我的WPF RichTextBox看起来像一个编码页面

我标记了一些单词以确定它是关键字还是字符串,。。。现在我有这样的文本:

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

总和=1

Console.WriteLine{0},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>
我的问题是指 但这似乎并不能解决我的问题

因为我的WPF RichTextBox内置了FlowDocument,我们无法通过字符串st=myRichtextBox.text之类的方式获取内容文本,我们需要使用TextRange tr=new TextRangertb.Document.ContentStart,rtb.Document.ContentEnd来获取其中的文本

但另一个问题是它得到了整个文本,而不是我想要的内容文本的一部分。示例:RichTextBox rtb包含:int sum;总和=1;Console.WriteLine{0},sum;我只想在和{0}中编辑它,而不是编辑整个文本

TextRange tr = new TextRange(rtb.Document.ContentStart,rtb.Document.ContentEnd) 
tr.Text为您提供内容的纯字符串。现在,您有了一个用于正则表达式/子字符串的字符串,如下所示:


可能重复的是,这是相同的问题,但不同的技术,我使用WPF RichTextBox,它不允许你得到包含文本那么容易。我找到了,我们可以使用TextRange获取所有文本并进行编辑。但是我怎样才能得到编辑它的准确文本呢?这就行了trick@efekctive这就是如何将整个文本放入其中的方法。但我只想得到文本的一小部分。示例:int,但不是int和;总和=1;Console.WriteLine{0},sum;