WPF按钮在单击期间更改背景

WPF按钮在单击期间更改背景,wpf,Wpf,这应该很简单,因此这是我缺少的东西。我需要在单击期间更改按钮的背景色。因此,如果用户连续两天单击按钮,则颜色会在这两天内发生变化。一旦用户完成单击,它将返回到正常颜色。我想这会解决我的问题: <Style x:Key="MyButtonStyle" TargetType="Button"> <Setter Property="Background" Value="Red"/> <Setter Property="Button.Effect"> <

这应该很简单,因此这是我缺少的东西。我需要在单击期间更改按钮的背景色。因此,如果用户连续两天单击按钮,则颜色会在这两天内发生变化。一旦用户完成单击,它将返回到正常颜色。我想这会解决我的问题:

<Style x:Key="MyButtonStyle" TargetType="Button">
<Setter Property="Background" Value="Red"/>
<Setter Property="Button.Effect">
    <Setter.Value>
        <DropShadowEffect Color="Black" Direction="320" ShadowDepth="3" BlurRadius="5" Opacity="0.5" />
    </Setter.Value>
</Setter>
<Style.Triggers>
    <Trigger Property="IsPressed" Value="True">
        <Setter Property="Button.Background" Value="Purple" />
        <Setter Property="Button.Effect">
            <Setter.Value>
                <DropShadowEffect Color="Black" Direction="320" ShadowDepth="0" BlurRadius="0" Opacity="0" />
            </Setter.Value>
        </Setter>
    </Trigger>
</Style.Triggers>

现在我知道,
IsPressed
确实可以工作,因为
DropShadowEffect
在按下时可以正常工作。但是颜色不会改变。我能想到的唯一原因是
IsMouseOver
优先于
IsPressed
。如果是这种情况,我如何让这两个事件“协同工作”

在人们把我和这个联系起来之前

还是这个还是这个


是的,这些更改按钮的颜色,但与用户单击时间无关。如上所述,我只希望它在实际用户点击时生效,就像
DropShadowEffect

啊,我是对的!问题其实是,
在哪里
在哪里
不合拍!这是解决办法

<Style x:Key="NewButton" TargetType="Button">
<Setter Property="Background" Value="Red"/>
<Setter Property="Button.Effect">
    <Setter.Value>
        <DropShadowEffect Color="Black" Direction="320" ShadowDepth="3" BlurRadius="5" Opacity="0.5" />
    </Setter.Value>
</Setter>
<Style.Triggers>
    <MultiTrigger>
        <MultiTrigger.Conditions>
            <Condition Property="IsPressed" Value="False" />
            <Condition Property="IsMouseOver" Value="True" />
        </MultiTrigger.Conditions>
        <Setter Property="Background" Value="Green" />
    </MultiTrigger>
    <Trigger Property="IsPressed" Value="True">
        <Setter Property="Button.Background" Value="Purple" />
        <Setter Property="Button.Effect">
            <Setter.Value>
                <DropShadowEffect Color="Black" Direction="320" ShadowDepth="0" BlurRadius="0" Opacity="0" />
            </Setter.Value>
        </Setter>
    </Trigger>
</Style.Triggers>