2010-09-14 7 views
1

J'ai développé un petit client de discussion en utilisant WPF. Dans chaque fenêtre de discussion, il contient une riche zone de texte pour afficher les conversations de chat précédentes et une zone de texte avec un bouton d'envoi pour taper un message de discussion. Je souhaite formater le texte d'affichage dans la zone de texte riche, comme indiqué ci-dessous.Comment mettre en forme du texte brut dans WPF RichTextBox

user1:chat message goes here

Pour le moment, j'utilise la fonction AppendText pour ajouter une conversation de chat à la richtextbox. mon code ressemble à ceci,

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

Mais de cette façon, je ne pouvais pas trouver une méthode pour mettre en forme le texte comme indiqué ci-dessus. Est-ce qu'il y a un moyen de faire ça? ou des méthodes alternatives?

grâce

Répondre

5

au lieu d'interagir avec le RichTextBox, vous pouvez interagir avec le FlowDocument directement pour ajouter du texte riche. Définissez le document sur le RichTextBox à un FlowDocument contenant un paragraphe et ajoutez des objets Inline tels que Run ou Bold au paragraphe. Vous pouvez formater le texte en définissant des propriétés sur le paragraphe ou sur les Inlines. Par exemple:

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

excellent travail. agréable! Je teste ce code et cela fonctionne correctement. C'est exactement ce que je cherche. merci beaucoup Quartermeister. –

Questions connexes