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

本文关键字:样式 元素 应用于 | 更新日期: 2023-09-27 18:08:19

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

我想居中所有我的textblock。我知道我必须在我的申请中这样做。资源:

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

但是,当TextBlock有Style set时,这不起作用。

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

我也知道如何覆盖颜色在ThemeResource像上面,但这个ThemeResource没有HorizontalAlignment设置。此外,我不想在我的资源中添加重复的样式,因为我使用了不同的themeresource。

我想实现的是在CSS中很容易实现的:跨度{文本对齐方式:中心;}…但我不知道如何在没有大量重复代码的XAML中做到这一点。我希望这很容易吧?

澄清我的问题:我想应用样式到所有的TextBlock, TextBlock与一个样式集,和TextBlock没有一个样式集。

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

您可以在Style中使用BasedOn参数,或者在HeaderTextBlockStyle中删除HorizontalAlignment属性

还检查HorizontalAlignment属性可以继承HeaderTextBlockStyle从当前样式,所以你可以手动设置这个项目只有