2012-10-16 33 views
1

我有一個TextBox控件:RichTextBox的foregound色彩和運行

<TextBox Text={Binding MyText},.../> 

其中

MyText = "leftWord/rightWord"; 

我明白,要獲得多個前景顏色我不能使用文本框,而是一個TextBlock或RichTextBox的。由於我需要編輯文本,我將使用RichTextBox。

我的目標是突出取決於另一個屬性值顯示的文本(改變前景色)或者「leftWord」或「rightWord」,如

MyChoice = Left|Right 

我不知道我是怎麼可以將運行內容設置爲基於MyChoice屬性的正確字符。有沒有辦法將整個文本傳遞給轉換器,以及MyChoice的值,並以某種方式設置正確的前景色?如果是這樣,我不確定xaml會是什麼樣子。

RichTextBox這可能嗎?我注意到它沒有Text屬性,所以我甚至不知道如何綁定(雙向綁定)MyText。

+0

Tricky,因爲'Inline' /'Block'屬性不是依賴屬性。我可能會擴展'RichTextBox'並添加您自己的「文本」依賴項屬性。 – McGarnagle

+0

@dbaseman:如果我自己做了,自己添加一個「文本」屬性,有關如何在這種情況下我能夠設置前景色的任何想法? – Flack

+0

我認爲只要「文本」屬性發生變化,您就可以將運行(使用合適的前景色)添加到「Inlines」/「Blocks」集合中。 – McGarnagle

回答

0

您可以使用.substring(#,#)創建2個變量。然後根據條件影響這些變量的前景色