编辑按钮视觉状态没有混合

时间:2013-02-22 18:09:16

标签: c# wpf wpf-controls

只需使用属性窗格或代码就可以编辑前景和背景等...没有Blend的Button的默认状态,但是可以编辑其他状态的颜色而不使用Blend吗?

例如,我想要的只是一个按钮,在“鼠标悬停”上变灰。我在Stack Overflow或Intertubes上看到的任何东西都使用了Blend。我想在没有它的情况下这样做。有可能吗?

1 个答案:

答案 0 :(得分:2)

一种简单的方法是使用Style触发器。

<Style x:Key="HoverButtonStyle" TargetType="{x:Type Button}">
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Gray"/>
        </Trigger>
    </Style.Triggers>
</Style>

样式在您的资源中定义。然后,当您在XAML中定义按钮时,您可以指定样式,如下所示:

<Button x:Name="MyButton" Style="{DynamicResource HoverButtonStyle}"/>

此样式将在鼠标悬停时更改Background的{​​{1}}画笔。您可以使用触发器执行更多高级操作,但这是一个非常简单的示例。如果你使用谷歌WPF样式触发器,你会发现很多例子,包括this one非常彻底。

还有其他方法可以执行此操作,例如使用Button,如here所述,但如果您只是尝试更改悬停时的VisualStateManager,则会触发样式可能是最简单的方法。