2
<Image Source="Data\Images\close_nohover.bmp">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="Data\Images\close_hover.bmp" />
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
Я воспользуюсь этой возможностью, чтобы немного узнать о WPF. Означает ли это, что свойства, установленные на элементе * всегда *, имеют приоритет над чем-либо, объявленным в стиле, даже если свойство, установленное в стиле, будет «более новым» (т. Е. Последним)? – stakx
Да, даже если вы начнете с приведенного выше примера, а затем установите Source в коде позади или что-то еще, триггер перестанет работать. Свойства, установленные на элементе, всегда имеют приоритет над свойствами, заданными в стиле. Например, я думаю, что было бы странно, если бы у вас был стиль для прямоугольника с по умолчанию «Заливка зеленого», а затем вы устанавливаете Fill = «Red» на Rectangle, и он остается зеленым из-за стиля :) –
Add: Если вы очистите значение для источника с помощью image.ClearValue (Image.SourceProperty), затем триггер начнет работать снова. –