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>