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