重复按钮样式设置器/触发器不起作用

时间:2016-12-31 17:58:43

标签: wpf visual-studio xaml

我正在使用Extended WPF Toolkit的IntegerUpDown控件。

I was able to stylize the arrow buttons in a previous question.

Before Style之前

After Style之后

我遇到了一些额外的样式问题:

我正在使用PresentationFramework.Aero和Aero2。

<!-- RepeatButton Style -->
<Style x:Key="{x:Static theme:ResourceKeys.SpinnerButtonStyleKey}" TargetType="RepeatButton">                 
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="True">
            <Setter Property="Background" Value="Transparent" />
            <Setter Property="BorderBrush" Value="Transparent" />               
        </Trigger>

        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderBrush" Value="Transparent" />
        </Trigger>

        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="DarkBlue"/>
            <Setter Property="BorderBrush" Value="Transparent" />
        </Trigger>

    </Style.Triggers>
</Style>  

链接到完整的XAML:http://pastebin.com/ETYgHEpz

IsEnabled False Trigger不会覆盖禁用的背景或边框颜色。它始终保持白色,我需要透明。但是我可以覆盖不透明度和BorderThickness。 (Windows 10):

Disabled Background Win10

无法更改IsMouseOver背景颜色,始终为浅蓝色。 (Windows 10):

MouseOver Color

Windows 7始终显示白色边框,即使BorderThickeness为0且Color为透明或{x:Null}:

Win7 Border

我认为它正被控制模板覆盖,但IntergerUpDown在控制模板中没有RepeatButton样式,我在尝试添加一个时遇到了麻烦。我不得不在外面制作风格。

1 个答案:

答案 0 :(得分:1)

通过样式设置器设置时,某些属性不起作用。这是因为Dependency Property Value Precedence。尝试更改ControlTemplate触发器中的值。