XAML:如何将样式应用于所有元素,甚至是具有样式集的元素

时间:2015-08-17 08:21:42

标签: c# wpf xaml

/ edit:Windows 10 UWP应用程序,它正在使用新的ThemeResources(所以没有StaticResources)

我想将所有TextBlocks放在中心位置。我知道我必须在我的Application.Resources中执行此操作:

<Style TargetType="TextBlock">
    <Setter Property="HorizontalAlignment" Value="Center"/>
</Style>

但是,当TextBlock设置了样式时,这不起作用。

<TextBlock Text="{Binding Summary}" Style="{ThemeResource HeaderTextBlockStyle}"/>

我也知道如何覆盖ThemeResources中的颜色,但是这个ThemeResource没有设置Horizo​​ntalAlignment。此外,我不想在我的资源中添加重复样式,因为我正在使用不同的ThemeResources。

我想要实现的是CSS非常简单:     跨度 {       文本对齐:中心;     } ...但我不知道如何在没有大量重复代码的情况下在XAML中执行此操作。我希望这一定很容易吗?

澄清我的问题:我想将样式应用于所有TextBlocks,带有样式集的TextBlocks和没有样式集的TextBlock。

1 个答案:

答案 0 :(得分:-1)

您可以在样式中使用 BasedOn 参数,或在 HeaderTextBlockStyle

中删除 Horizo​​ntalAlignment 属性

还要检查 Horizo​​ntalAlignment 属性是否可以从当前样式继承 HeaderTextBlockStyle ,因此您只能为此项目手动设置