绑定textblock元素的子文本的前景属性

时间:2016-12-08 16:09:26

标签: c# .net wpf xaml

我发现我无法将文本块中包含的文本的前景设置为子级(而不是通过文本块上的Text属性设置的文本),只需使用Foreground属性即可父文本块。我已尝试设置属性TextElement.ForegroundRun.Foreground,但都无法正常工作。在这种情况下有谁知道首选方法?

到目前为止,这是我的代码:

    <TextBlock Foreground="{Binding ForegroundColor}">
          Sample<LineBreak/>Text
    </TextBlock>

编辑:这里有一个有趣的转折:如果我把<LineBreak/>取出来,前景设置得很好

1 个答案:

答案 0 :(得分:2)

确保您的应用程序中没有定义隐式运行样式:

<Style TargetType="Run">
     <Setter Property="Foreground" Value="Gray" />
</Style>

这个将覆盖父TextBlock的前景设置。

如果您这样做,可以向TextBlock添加隐式运行样式:

<TextBlock>
     <TextBlock.Resources>
         <Style TargetType="Run">
             <Setter Property="Foreground" Value="Orange" />
         </Style>
     </TextBlock.Resources>
    Sample<LineBreak/>Text
</TextBlock>