【发布时间】:2020-06-22 16:32:32
【问题描述】:
我目前正在使用 C# WPF 开发一个消息传递应用程序。我正在尝试将文本插入到 RichTextBox 中,但在一行上应用不同的颜色。
[Billy123] The message
我希望文本显示在一行上,如图所示,并以一种颜色(即:红色)显示用户名(在括号中),然后以另一种颜色显示消息,即:黑色。
我尝试了以下两次:
run.Foreground = new SolidColorBrush(Colors.Red); // My Color
Paragraph paragraph = new Paragraph(run);
MyRichTextBlock.Document.Blocks.Add(paragraph);
但这会将单独的文本显示为两部分,而我需要它们在一行上。
我也试过了:
currentChatDisplay.AppendText("Loren");
currentChatDisplay.Foreground = new SolidColorBrush(currentUserMessageColour);
currentChatDisplay.AppendText("Loren");
(currentChatDisplay 是 RichTextBox 的名称)但它改变了所有文本的颜色。
我将如何实现这一目标?
编辑:我已经采用了 @Peregrene 在 cmets 中演示的方法
【问题讨论】:
-
必须是富文本吗?我创建了一个增强的 TextBlock 控件,该控件将允许使用类似于文本中的 HTML 的标签根据需要设置任何文本属性,包括前景色和背景色 - peregrinesview.uk/wpf-controls-formatted-textblock
-
@Peregrine 我查看了您的网页,它非常适合我的应用程序!我可能会选择这种方法,因为我更喜欢使用 HTML 语法进行格式化。