我觉得我要重新发明轮子所以我想知道WPF是否对我正在努力实现的目标提供了支持。我正在构建一个应用程序,允许人们在文本框中输入一些文本,然后在文本块中看到它的格式。
我希望用户能够通过输入诸如
之类的内容来自己格式化文本This [BusinessSpecificStyle] is [/BusinessSpecificStyle] a sample text
我的目的是通过简单地更改BusinessSpecificStyle中的底层规则,轻松更改所有文档的显示。但是我不知道用WPF实现它的最佳方法是什么。我正在考虑使用BBCode解析器like this one,但假设我这样做,我看不出我将如何以编程方式将生成的XAML转换为TextBlock子项,我很想知道是否有一些那种内心的支持。
感谢您的帮助
答案 0 :(得分:1)
IValueConverter正是您要找的。 p>
根据从XAML 传递的绑定创建转换器并 格式化文本。 您可以通过网络获取多个样本以创建IValueConverter。请参阅here和here链接,开始使用。
答案 1 :(得分:0)
不确定您是否在这里要求转换器。对我而言,它表明你想根据一些背景和常见的风格来控制文本块的样式?
如果是这种情况,您需要设置文本块的内联以将文本分隔为run元素,这可以引用特定的样式资源。
<TextBlock>
<TextBlock.Inlines>
<Run>This</Run>
<Run Foreground="{StaticResource BusinessSpecificStyleForeground}">is</Run>
<Run>a sample text</Run>
...
在这种情况下,您可以创建一个资源来定义运行的绑定样式,或者将Style整合到其中。
如果我正在编写一个新问题,我会道歉,我发现你已经标记了一个答案,但我想加上这个以防万一。