RadioButton样式属性Padding未应用

时间:2016-08-05 15:52:49

标签: wpf xaml radio-button padding wpf-style

[使用.NET Framework 4.5.1]

我在我的一个WPF Windows中设置了以下资源:

<Window.Resources>
    <Style TargetType="{x:Type FrameworkElement}" x:Key="baseStyle">
        <Setter Property="Margin" Value="5"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
    </Style>
    <Style TargetType="{x:Type FrameworkElement}" x:Key="basePlusEnabled" BasedOn="{StaticResource baseStyle}">
        <Setter Property="IsEnabled" Value="{Binding TestIsRunning, Mode=OneWay}"/>
    </Style>
    <Style TargetType="RadioButton" BasedOn="{StaticResource basePlusEnabled}">
        <Setter Property="Padding" Value="4,-5,0,0"/>
        <Setter Property="HorizontalAlignment" Value="Left"/>
        <Setter Property="Foreground" Value="{Binding TestIsRunning, 
            Converter={StaticResource testIsRunningForegroundConverter}, Mode=OneWay}"/>
    </Style>
</Window.Resources>

但是,Padding样式未应用于窗口中的RadioButton。 (样式中的其他属性正在应用。)如果我在每个Padding中明确指定RadioButton,那么它可以正常工作。我在这里缺少什么?

编辑: 示例RadioButton实例:

<RadioButton Grid.Column="4" Content="Iowa" GroupName="Facility"
    IsChecked="{Binding IowaFacilityChecked1, UpdateSourceTrigger=PropertyChanged, 
    Mode=TwoWay}"/>

1 个答案:

答案 0 :(得分:0)

TargetType="{x:Type FrameworkElement}"更改为TargetType="{x:Type RadioButton}"