2

可能重复:
我可以在 WPF 中的单个 TextBlock 中有多种颜色吗?

是否可以为 WPF TextBlock 的部分设置样式,例如将某个单词设置为粗体、斜体或下划线?你能改变所有的字体属性吗?如果是这样,什么解决方案是最漂亮和最有效的?

4

2 回答 2

3

您可以在 XAML 中的 TextBlock 中单独设置运行样式,也可以使用Inlines.cs 代码隐藏文件中的属性。这篇博文表明您至少可以设置字体样式、字体粗细、前景色和字体大小。

XAML:

<TextBlock>
     <Run Text="SomeText" FontWeight="Bold" FontStyle="Italic"/>
     <Run Text=" some more text" FontSize="12"/>
     <Run Text=" and more" Foreground="Blue"/>
</TextBlock >

下面是一个示例,展示了从C# Corner向运行添加画笔:

<Run.Foreground>
   <LinearGradientBrush>
      <GradientStop Color="Green" Offset="0.0" />
      <GradientStop Color="Purple" Offset="0.25" />
      <GradientStop Color="Orange" Offset="0.5" />
      <GradientStop Color="Blue" Offset="0.75" />
   </LinearGradientBrush>
</Run.Foreground>

您可以以编程方式访问的Inlines集合是System.Windows.Documents.Run对象的集合。

于 2012-08-31T21:07:29.133 回答
2

尝试使用Runs,您可以根据需要将任意数量的它们放在TextBlockParagraph中,它们在性能方面非常有效。

您还可以为 Run 的Text属性使用绑定,非常酷!

<TextBlock>
    <Run Text="I want to show you some" />
    <Run Text="bold"
         FontWeight="Bold" />
    <Run Text="text!" />
</TextBlock>
于 2012-08-31T21:08:18.760 回答