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

Lah*_*age 1 format wpf append richtextbox

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

用户1: chat message goes here

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

this.ShowChatConversationsBox.AppendText(from+": "+text);
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Qua*_*ter 5

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

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());
}
Run Code Online (Sandbox Code Playgroud)