WPF Setter没有处理某些控件

时间:2017-05-30 08:00:27

标签: c# wpf styles

我正在尝试在我的应用程序中使用setter来更改所有控件的字体大小。我的风格看起来像这样:

<Style x:Key="baseStyle" TargetType="{x:Type Control}">
    <Setter Property="FontSize" Value="12" />

    <Setter Property="Background" Value="{x:Null}" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding Width, ConverterParameter=1000, Converter={StaticResource DoubleToBoolConverter}, ElementName=window, Mode=OneWay}" Value="True">
            <Setter Property="FontSize" Value="24" />
            <Setter Property="Background" Value="Red" />
        </DataTrigger>
    </Style.Triggers>
</Style>

我的所有子类都看起来像这样

<Style BasedOn="{StaticResource baseStyle}" TargetType="{x:Type Button}">
    ...
</Style>

我的问题是我的样式不适用于所有控件。例如seam的标签忽略我的FontSize Setter

默认样式: Default Style

触发式: Triggered Style

1 个答案:

答案 0 :(得分:0)

您是否实际引用了Label元素或TextBlock元素?因为后一种类型不是Control,并且不会受到Style的影响。这应该工作:

<Style BasedOn="{StaticResource baseStyle}" TargetType="{x:Type Label}" />

但请始终记得在提问时提供可重现的问题样本:https://stackoverflow.com/help/mcve