Как отформатировать обычный текст в WPF RichTextBox - PullRequest
1 голос
/ 14 сентября 2010

Я разработал небольшой чат-клиент с использованием WPF.В каждом окне чата он содержит поле richtext для отображения предыдущих разговоров в чате и текстовое поле с кнопкой отправки для ввода сообщения чата.Я хочу отформатировать отображаемый текст в поле richtextbox, как показано ниже.

user1: chat message goes here

В настоящее время я использую функцию AppendText для добавления разговора в чате.к richtextbox.мой код выглядит так:

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

Но, таким образом, я не смог найти метод для форматирования текста, как показано выше.Есть какой-либо способ сделать это?или какие-то альтернативные методы?

спасибо

1 Ответ

5 голосов
/ 14 сентября 2010

Вместо взаимодействия с RichTextBox вы можете напрямую взаимодействовать с FlowDocument для добавления расширенного текста. Установите для документа в RichTextBox значение FlowDocument, содержащее абзац, и добавьте к абзацу Inline объекты, такие как Run или Bold . Вы можете отформатировать текст, установив свойства в Абзаце или в Inlines. Например:

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());
}
...