1
我需要繪製一行文本,並在WPF中爲部分字符串(即突出顯示)設置不同的背景。 FomattedText類允許爲字符串的不同部分設置各種屬性,如粗體,下劃線等顏色等,但不具有背景顏色。我認爲使用TextFormatter和編寫一個自定義的TextSource將完成這項工作,但它看起來像一個相當重的做法很簡單的方法。還有另一種方法可以做到嗎?WPF - 用不同背景顏色繪製文本行
我需要繪製一行文本,並在WPF中爲部分字符串(即突出顯示)設置不同的背景。 FomattedText類允許爲字符串的不同部分設置各種屬性,如粗體,下劃線等顏色等,但不具有背景顏色。我認爲使用TextFormatter和編寫一個自定義的TextSource將完成這項工作,但它看起來像一個相當重的做法很簡單的方法。還有另一種方法可以做到嗎?WPF - 用不同背景顏色繪製文本行
您可以通過使用帶有多個Inline兒童的基本TextBlock併爲他們提供單獨的背景顏色來實現此目的。這裏是XAML一個簡單的例子:
<TextBlock>
<Run Background="Blue">Foo</Run>
<Run Background="Red">Bar</Run>
</TextBlock>
需要注意的是,沒有模板ContentPresenter會自動換行內聯對象在一個TextBlock,所以你可以綁定一個ContentControl中的跨度的內容屬性。有關數據綁定到Inline的建議,請參見this StackOverflow question。
如果您希望文本可由用戶編輯,那麼您應該查看RichTextBox。