我使用WPF开发了一个小型聊天客户端。在每个聊天窗口中,它包含一个用于显示以前聊天对话的richtextbox和一个带有发送按钮的文本框,用于键入聊天消息。 我想格式化richtextbox中的显示文本,如下所示。
user1: chat message goes here
目前,我使用AppendText函数将聊天对话附加到richtextbox。我的代码看起来像这样,
this.ShowChatConversationsBox.AppendText(from+": "+text);
但是通过这种方式,我找不到一种方法来格式化上面显示的文本。有没有办法做到这一点?或任何替代方法?
感谢
答案 0 :(得分:5)
您可以直接与FlowDocument交互以添加富文本,而不是与RichTextBox交互。将RichTextBox上的Document设置为包含段落的FlowDocument,并将Inline对象(例如Run或Bold)添加到段落中。您可以通过在段落或内联上设置属性来设置文本格式。例如:
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());
}