Как изменить изображение при наведении курсора в WPF? - PullRequest
33 голосов
/ 01 октября 2009

Как я могу изменить изображение при наведении на него курсора?

Все, что у меня есть, это:

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

Ответы [ 2 ]

74 голосов
/ 01 октября 2009

Вам необходимо использовать триггер для свойства 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>

Обратите внимание, что триггеры могут использоваться только внутри стилей, и для того, чтобы триггер изменил свойство, значение этого свойства должно быть установлено стилем, а не задано явно для элемента.

8 голосов
/ 01 октября 2009
<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>

Есть и другие способы запуска. Хорошо?

...