【发布时间】:2013-06-02 10:58:09
【问题描述】:
我的 WPF 应用程序中有一个 RichTextBox,其中有一个常规文本。我想更改文本的某些部分的颜色。 示例:
文件如下所示:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
我想改变这个颜色:<heading>Reminder</heading>
有没有办法做到这一点?
窗口的 XAML:
<Window x:Class="WpfConfigHelper.Framework.AdditionalWinows.XmlAfterUpdateComparator"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="XmlAfterUpdateComparator" Height="602" Width="1033">
<Grid>
<RichTextBox Height="426" HorizontalAlignment="Left" Margin="9,42,0,0" Name="BeforeXmlUpdated_TextBox" VerticalAlignment="Top" Width="495" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/>
<RichTextBox Height="426" HorizontalAlignment="Left" Margin="510,42,0,0" Name="AfterXmlUpdated_TextBox" VerticalAlignment="Top" Width="490" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/>
<Label Content="Before Update:" Height="29" HorizontalAlignment="Left" Margin="205,12,0,0" Name="BeforeXmlUpdated_Label" VerticalAlignment="Top" Width="115" />
<Label Content="After Update:" Height="31" HorizontalAlignment="Left" Margin="697,12,0,0" Name="AfterXmlUpdated_Label" VerticalAlignment="Top" Width="87" />
<Label Content="Do you agree to perform the changes from the right text box?" Height="33" HorizontalAlignment="Left" Margin="338,485,0,0" Name="DoYouAgreeWithChanges_Label" VerticalAlignment="Top" Width="497" />
<Button Content="Yes" Height="27" HorizontalAlignment="Left" Margin="308,524,0,0" Name="AgreedWithChanges_Button" VerticalAlignment="Top" Width="196" Click="AgreedWithChanges_Button_Click" />
<Button Content="No" Height="29" HorizontalAlignment="Left" Margin="516,524,0,0" Name="DisagreedWithChanges_Button" VerticalAlignment="Top" Width="221" Click="DisagreedWithChanges_Button_Click" />
<Label Content="Text removed" Height="39" HorizontalAlignment="Left" Margin="12,474,0,0" Name="label1" VerticalAlignment="Top" Width="177" Foreground="Red" FontSize="13"/>
<Label Content="Text inserted" Height="41" HorizontalAlignment="Left" Margin="906,477,0,0" Name="label2" VerticalAlignment="Top" Width="93" Foreground="Green" FontSize="13"/>
</Grid>
不久前,我看到一个使用正则表达式的代码,该表达式用于映射整个短语并在文本中更改其颜色,但我在这里看不到它发生。文本是静态的,没有完全格式化。
你认为我可以以某种方式对其进行转换,以便我可以对其进行格式化,然后将其显示在用颜色、字体等格式化的 RichTextBox 中吗?
【问题讨论】:
-
您可以发布您目前拥有的 xaml 吗?
-
我的问题现在被编辑了。你可以在那里看到它
-
你是在后面的代码中添加文字吗?
-
是的,我是。RichTextBox 中的文本正在添加到代码隐藏(.AppednText(string)) 中。
标签: c# wpf colors richtextbox