如何在TextBlock wpf中动态显示格式化文本

时间:2016-05-19 20:08:32

标签: wpf vb.net xaml

我在resx文件中有一些文本需要在TextBlock中显示。此文字将包含粗体区域,我必须在粗体中显示。当文本发生变化时,保持粗体区域的最佳方法是什么?我不能从代码后面进行内联,因为resx文件中的文本可以更改。 WPF vb.net应用程序。感谢

2 个答案:

答案 0 :(得分:0)

您需要使用 Inlines

<TextBlock.Inlines>
    <Run FontWeight="Bold" FontSize="14" Text="{Binding BoldTextProperty}" />
    <Run FontStyle="Italic" Foreground="Red" Text="{Binding ItalicandRedColorTextProperty}" />
</TextBlock.Inlines>

如果您未使用绑定,请将文本直接指定给文本属性。

您还可以绑定其他属性:

<TextBlock.Inlines>
    <Run FontWeight="{Binding Weight}"
         FontSize="{Binding Size}"
         Text="{Binding LineOne}" />
    <Run FontStyle="{Binding Style}"
         Foreground="Binding Colour}"
         Text="{Binding LineTwo}" />
</TextBlock.Inlines>

如果您使用粗体作为布尔值(例如),则可以通过转换器进行绑定。

答案 1 :(得分:0)

我不得不做一些改变。我从resx文件中删除了文本并将其放入.txt文件中。我为标题下的每个主体创建了一个.txt文件,并对标题进行了硬编码。从后面的代码中使用Inline,我控制了标题中的内容以及它下面的内容。这样可以在.txt文件中更改文本正文,代码将保持不变。