簡體   English   中英

什么是在WPF中自定義綁定文本的最佳方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM