首页 文章

如何从WPF RichTextBox中选择文本,然后替换并为其着色

提问于
浏览
-1

我正在尝试使我的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>

我的问题参考this stackoverflow question但它似乎没有解决我的问题 .

因为我的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$@> 并编辑它而不是整个文本 .

1 回答

相关问题