2011-07-25 65 views
3

我有一個富文本框應用程序,我必須執行兩個操作。如何獲取富文本框字符顏色?

1)我只需要突出顯示富文本框文本中字符的一部分。

示例:假設我有100個沒有空白的字符。在這個我需要驗證,用戶不能突出只有一些允許的字符。

意味着我有100個字符和管理員只允許20%,那麼用戶只能突出20%。字符底色爲黑色,意味着用戶不能更改任何80個字符的顏色。用戶只能更改任何顏色的20個字符。

2)假設用戶突出顯示任何文本。然後,用戶用戶可以將任何文本標記爲註釋。

我已經做了很多搜索,但我沒有得到任何解決方案,請幫助我找到解決方案。

回答

0

嗯,我假設這是一個WPF RichTextBox您正在查詢,基於'桌面應用程序'標籤。所以在WPF RichTextBox中你有一個TextRange對象,它有一個ApplyPropertyValue

因此,您希望獲得跨越所需字符的TextRange,然後將TextElement.Foreground屬性應用於您選擇的畫筆。

例如,如果你想高亮顯示的字符20-40爲紅色,你可能會做這樣的事情:

var range = new TextRange(
    rtb.Document.ContentStart.GetPositionAtOffset(20), 
    rtb.Document.ContentStart.GetPositionAtOffset(40)); 
range.ApplyProperty(TextElement.ForegroundProperty, Brushes.Red); 

,當你申請這樣一個屬性值得一提的是,在內部文本將被打破進入多次運行並通過偏移獲取位置將不會以相同的方式工作。在這種情況下,您應該爲整個文檔獲取TextRange並調用ClearAllProperties或使用TextPointer並遍歷這些運行。

+0

這是簡單的窗口應用程序。 –

+0

所以你說它的Windows窗體呢? –

+0

是的,我需要這個窗體中豐富的文本框 –