[英]What is best way to customize binded text in WPF
正如標題所說,我需要自定義WPF中的部分文本,例如,我有一個短語“快速的棕色狐狸跳過懶狗”,我需要加粗“棕色”這個詞,或者更改背景/前景色“狐狸” 據我所知,沒有一個常規的WPF控件支持該功能,是否有任何開源/免費替代品?
PS控件應該是可綁定的
謝謝。
我在很大程度上取決於你要完成什么,但你可以使用WPF工具包的一個RichTextBox的建議在這里 。
或者您可以按照此處的建議將綁定功能添加到.Net RichTextBox。
但是,如果您不需要像RichTextBox那么復雜的任何東西。 您可以使用ValueConverter並將要顯示的文本更改為更符合您需求的文本。 像這個例子 。
同樣依賴於你需要的東西,你可以創建一個帶有依賴屬性“Text”的用戶控件,並且在PropertyChanged上,你將文本分成更小的部分,然后將它們綁定在不同的“子屬性”中。在用戶控件中顯示不同的TextBlocks(具有不同的樣式)。
更新 (添加了我的評論中的建議)
如果RichTextBox不是解決方案,也不是UserControl,您可以使用ValueConverter通過TextBlock.Inline完成此操作,就像這里一樣。
您可以使用Run
來裝飾文本。
<TextBlock>
<Run>The quick </Run>
<Run FontWeight="Bold" Background="Yellow">brown</Run>
<Run Foreground="Red"> fox </Run>
<Run>jumps over the lazy dog.</Run>
</TextBlock>
輸出 :
此外,如果您使用的是WPF 4.0及更高版本, Microsoft已將Run的Text
屬性設置為依賴屬性,而不是正常的CLR屬性 。 所以,你也可以綁定它。
請參閱此處了解Bindable Run。
您可以使用HTML
來自定義文本..您可以在此處獲取一組HTML代碼...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.