我有一个带有Image的按钮,如下所示:
<Button Width="22" Height="22" Command="{Binding PreviousCommand}">
<Button.Template>
<ControlTemplate>
<Image Source="C:\Users\abcdef\Desktop\Slide-To-Left-Arrow-24.png"></Image>
</ControlTemplate>
</Button.Template>
<Button.InputBindings>
<KeyBinding Key="Up" Command="{Binding PreviousCommand}" Modifiers="Alt+Shift" />
</Button.InputBindings>
</Button>
我想将一些鼠标悬停在效果上以识别按钮是否可点击/可聚焦。 我尝试按如下方式添加触发器,但它不起作用:
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Black" />
</Trigger>
</ControlTemplate.Triggers>
它不起作用。我需要做什么?请帮帮我。
答案 0 :(得分:7)
此时,您的控制模板仅包含的图像,因此您无需更改背景(通过触发器)。如果您想要添加后台更改,则需要稍微扩展ControlTemplate
。尝试这样的事情:
<Button.Template>
<ControlTemplate>
<Grid x:Name="bg">
<Image Margin="4" Source="C:\Users\dheeraj.dilip.awale\Desktop\Slide-To-Left-Arrow-24.png"></Image>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Target="bg" Property="Background" Value="Black" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
这只是一个非常简单的示例,说明如何利用上面显示的触发器。所有这一切都是在图片下添加Grid
并在图片上添加Margin
,以便Grid
的一部分可见。然后,当用户将鼠标悬停在按钮上时,它会使用Target
的{{1}}属性来指定Setter
的{{1}}。您当然可以使用Background
做更多其他类型的视觉提示,但希望这可以帮助您入门。