我正在尝试在鼠标悬停在按钮上时更改图像,但是这里不能正常工作:
<Button x:Name="Play" Content="" ClickMode="Press" BorderThickness="0" UseLayoutRounding="True" Height="120" Width="224">
<Button.Background>
<ImageBrush ImageSource="Resources/Play 1.gif"/>
</Button.Background>
<Button.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ImageBrush.ImageSource" Value="Resources/Play 2.gif"></Setter>
</Trigger>
</Button.Triggers>
</Button>
但这给了我这个错误:Triggers collection members must be of type EventTrigger.
我将如何使其发挥作用?
答案 0 :(得分:0)
这是正确的 - 你只能把EventTriggers放在那里。您需要将触发器移动到按钮的样式:
<Button x:Name="Play" Content="" ClickMode="Press" BorderThickness="0" UseLayoutRounding="True" Height="120" Width="224">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Background">
<Setter.Value>
<ImageBrush ImageSource="..\Resources\Play 1.gif"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background">
<Setter.Value>
<ImageBrush ImageSource="..\Resources\Play 2.gif"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
我想这样的事情(尚未测试过)。
编辑:这在正确的图像之间切换,但它无法正常工作(它从Play 1.gif开始,转换到Play 2.gif,但随后转换为按钮的基础颜色)。我认为您必须覆盖按钮ControlTemplate
以防止这种情况发生,如评论中所示。