在WPF中如何实现鼠标悬停时更改图像?

36

我如何在鼠标悬停时更换图像?

我目前所拥有的是:

<Image Height="32" Source="/images/Save32.png" />
2个回答

87

你需要在IsMouseOver属性上使用触发器来修改图像的源:

<Image>
  <Image.Style>
    <Style TargetType="{x:Type Image}">
      <Setter Property="Source" Value="C:\Image1.jpg"/>
      <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
          <Setter Property="Source" Value="C:\Image2.jpg"/>
        </Trigger>
      </Style.Triggers>
    </Style>
  </Image.Style>
</Image>

请注意,触发器只能在样式内部使用,并且为了使触发器更改属性值,该属性的值必须由样式设置,而不能在元素上显式设置。


4
请注意,触发器只能在样式内使用。为了使触发器能够更改属性的值,该属性的值必须由样式设置,并且不能在元素上显式设置。- 这让我之前遇到的一些问题变得非常清晰,谢谢! - Dave Jellison

8
<Image Stretch="Fill" >
        <Image.Style>
            <Style>
                <Setter Property="Image.Source" Value="original.png" />
                <Style.Triggers>
                    <Trigger  Property="Image.IsMouseOver" Value="True">
                        <Setter Property="Image.Source" Value="mouseover.png" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
</Image>

还有其他方式可以触发。好的吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接