web-dev-qa-db-fra.com

Comment changer une image en survol dans WPF?

Comment puis-je changer une image lorsque je la survole?

Jusqu'à présent, je n'ai que:

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

Vous devez utiliser un déclencheur sur la propriété IsMouseOver pour modifier la source de l'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>

Notez que les déclencheurs ne peuvent être utilisés qu'à l'intérieur des styles et pour qu'un déclencheur modifie une propriété, la valeur de cette propriété doit être définie par le style et non définie explicitement sur l'élément.

78
Phil Devaney
<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>

Il existe d'autres moyens qui se déclenchent. D'accord?

8
Vincent BOUZON