2010-09-14 1 views
1

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

user1:chat message goes here

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

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

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

благодаря

ответ

5

Вместо того, чтобы взаимодействовать с RichTextBox, вы можете взаимодействовать с FlowDocument непосредственно добавить форматированный текст. Установите документ в RichTextBox в 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()); 
} 
+0

отличная работа. хороший! Я тестирую этот код, и он работает правильно. Это именно то, что я ищу. Большое спасибо Quartermeister. –

 Смежные вопросы

  • Нет связанных вопросов^_^