How do I change an image on hover over in WPF?

Eli Perpinyal picture Eli Perpinyal · Oct 1, 2009 · Viewed 40.1k times · Source

How can I change an image when I hover over it?

All I have so far is:

<Image Height="32" Source="/images/Save32.png" />

Answer

Phil Devaney picture Phil Devaney · Oct 1, 2009

You need to use a Trigger on the IsMouseOver property to modify the Source of the Image:

<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>

Note that Triggers can only be used inside Styles, and in order for a Trigger to change a property that property's value must be set by the Style and not set explicitly on the element.