我已經搜索了一段時間的這個解決方案,所以現在我在這裏發佈。WPF RichTextBox更改字體顏色內嵌
現在我能夠改變整個RichTextBox
的前景色:
yourRichTextBox.Foreground = Brushes.Red;
我也能夠改變一些文字,用戶已經與他們的光標選擇的顏色:
if(!yourRichTextBox.Selection.IsEmpty){
yourRichTextBox.Selection.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Red);
}
但我想能夠改變用戶鍵入的下一個文本的顏色。
我有一個返回用戶想要的文本要在顏色拾色器對話框。因此,用戶在RichTextBox
在正常的黑色字體輸入,那麼他們會點擊顏色選擇器按鈕,選擇一種顏色,打好,然後他們鍵入的下一個東西就是這種顏色。有沒有辦法做到這一點或我運氣不好?
我能想到的唯一方法就是擁有一個緩衝區來捕獲用戶輸入的每個字符,然後在輸入的每個字母上設置前景屬性,然後將其添加回RichTextBox
,想法?
在這裏找到的解決方案將工作我認爲(沒有測試它): http://stackoverflow.com/questions/1926264/color-different-parts-of-a-richtextbox-string?answertab=active#tab -top AppendText函數被重載並且可以使用額外的顏色屬性調用 –