WPF RichTextBox 有效地将代码中的文本加粗
本文关键字:文本 代码 RichTextBox 有效地 WPF | 更新日期: 2023-09-27 18:33:59
我是WPF的新手,所以请原谅我的无知,我已经尝试在谷歌上搜索这个问题大约30分钟+,似乎找不到适合我情况的简单解决方案。
基本上,我正在制作一个从服务器读取一行的IRC应用程序,我阅读了昵称和消息。并放一行如下:
<Nick> Message typed...
我希望<Nick>
部分以粗体显示。后来也许是彩色的。我还看到了一些为每个循环做的例子,但是如果我有一个 1000+ 行并在每次有人键入内容时执行一个 foreach 循环,那会不会是无效的?
请告知最佳/最简单的方法...从 C# 编程方面。
这是我的代码:
private void OnChannelMessage(object sender, IrcEventArgs e)
{
if (!txtActivity.Dispatcher.CheckAccess())
{
txtActivity.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate()
{
txtActivity.AppendText(string.Format("<Bold><{0}:{1}></Bold> {2}'n", e.Data.Channel, e.Data.Nick, e.Data.Message));
//Paragraph p = new Paragraph();
//p.Inlines.Add(new Bold(new Run(string.Format("<{0}> ", e.Data.Nick))));
//p.Inlines.Add(new Run(string.Format("{0}'n", e.Data.Message)));
//txtActivity.Document.Blocks.Add(p); // problem adds a big space between lines.
}
));
}
}
XAML:
<Grid>
<RichTextBox Name="txtActivity" VerticalScrollBarVisibility="Auto" Margin="12,12,12,41" BorderThickness="2" FontFamily="Consolas">
<RichTextBox.Resources>
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0"/>
</Style>
</RichTextBox.Resources>
</RichTextBox>
<Button Content="Quit" Height="23" HorizontalAlignment="Left" Margin="628,371,0,0" Name="btnQuit" VerticalAlignment="Top" Width="50" Click="btnQuit_Click" />
</Grid>
使用 FlowDocument。 它支持具有大量格式的标记。
流文档