在richTextBox中着色文本的一部分

时间:2016-07-30 08:06:48

标签: c# wpf

所以我目前正在为Twitch编写一个小型IRC机器人,我正在使用WPF,我想在我添加到richTextBox的文本行中只为用户名着色。我试着用简单的前景着色,但它每次都为我着色。

我目前的代码:

if (e.ChatMessage.ColorHex.StartsWith("#"))
{
     richTextBox.Foreground = ChatUtils.convertHexToBrush(e.ChatMessage.ColorHex);
}

richTextBox.AppendText(String.Format("[{0}] <{1}>: {2}", 
                       DateTime.Now.ToString("HH:mm:ss"),  
                       e.ChatMessage.DisplayName, e.ChatMessage.Message) + "\n");

richTextBox.ScrollToEnd();

那么我如何只为参数{1}着色e.ChatMessage.DisplayName

1 个答案:

答案 0 :(得分:1)

试试这个 -

TextRange tr = new TextRange(rtb.Document.ContentEnd,­ rtb.Document.ContentEnd);
tr.Text = e.ChatMessage.DisplayName;
tr.ApplyPropertyValue(TextElement.­ForegroundProperty, Brushes.Red);

看看这是否有帮助。