2011-04-01 91 views
14

我正在使用RichTextBox.AppendText函數向我的RichTextBox添加一個字符串。我想設置一個特定的顏色。我怎樣才能做到這一點?WPF RichTextBox附加彩色文本

回答

29

就試試這個:

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

非常感謝! – Aks 2011-04-01 12:21:54

9

如果你願意,你也可以把它的擴展方法。

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) { } 
} 

這將使所以你可以做

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

或十六進制如

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

如果鍵入顏色字符串是無效的,它只是類型它在默認顏色(黑色)。 希望這有助於!