2011-04-01 19 views
14

RichTextBox ürününe bir dize eklemek için RichTextBox.AppendText işlevini kullanıyorum. Bunu belli bir renkle ayarlamak istiyorum. Bunu nasıl yapabilirim?WPF RichTextBox ekli renkli metin

cevap

29

Sadece bu deneyin:

İsterseniz
TextRange tr = new TextRange(rtb.Document.ContentEnd,­ rtb.Document.ContentEnd); 
tr.Text = "textToColorize"; 
tr.ApplyPropertyValue(TextElement.­ForegroundProperty, Brushes.Red); 
+0

güzel teşekkürler! – Aks

9

, ayrıca bunun bir uzantısı yöntemi yapabilirsiniz.

public static void AppendText(this RichTextBox box, string text, string color) 
{ 
    BrushConverter bc = new BrushConverter(); 
    TextRange tr = new TextRange(box.Document.ContentEnd, box.Document.ContentEnd); 
    tr.Text = text; 
    try 
    { 
     tr.ApplyPropertyValue(TextElement.ForegroundProperty, 
      bc.ConvertFromString(color)); 
    } 
    catch (FormatException) { } 
} 

Bu yüzden sadece

myRichTextBox.AppendText("My text", "CornflowerBlue"); 

veya onaltılık gibi

myRichTextBox.AppendText("My text", "0xffffff"); 

içinde

yapabilirsiniz yapacaktır yazdığınız renk dizesi geçersiz ise, basitçe tipleri bunu içinde varsayılan renk (siyah). Umarım bu yardımcı olur!