如何在WPF RichTextBox中格式化纯文本

时间:2010-09-14 01:22:04

标签: wpf format richtextbox append

我使用WPF开发了一个小型聊天客户端。在每个聊天窗口中,它包含一个用于显示以前聊天对话的richtextbox和一个带有发送按钮的文本框,用于键入聊天消息。 我想格式化richtextbox中的显示文本,如下所示。

user1: chat message goes here

目前,我使用AppendText函数将聊天对话附加到richtextbox。我的代码看起来像这样,

this.ShowChatConversationsBox.AppendText(from+": "+text);

但是通过这种方式,我找不到一种方法来格式化上面显示的文本。有没有办法做到这一点?或任何替代方法?

感谢

1 个答案:

答案 0 :(得分:5)

您可以直接与FlowDocument交互以添加富文本,而不是与RichTextBox交互。将RichTextBox上的Document设置为包含段落的FlowDocument,并将Inline对象(例如RunBold)添加到段落中。您可以通过在段落或内联上设置属性来设置文本格式。例如:

public MainWindow()
{
    InitializeComponent();
    this.paragraph = new Paragraph();
    this.ShowChatConversationsBox.Document = new FlowDocument(paragraph);
}

private Paragraph paragraph;

private void Button_Click(object sender, RoutedEventArgs e)
{
    var from = "user1";
    var text = "chat message goes here";
    paragraph.Inlines.Add(new Bold(new Run(from + ": "))
    {
        Foreground = Brushes.Red
    });
    paragraph.Inlines.Add(text);
    paragraph.Inlines.Add(new LineBreak());
}