Как установить Событие mouseOver/, инициировали для границы в XAML? Я хочу, чтобы граница стала зеленой, когда мышь по ней и затем возвратиться к синему, когда мышь больше не по границе. Почему не может я просто использовать следующий код:
<Border
Name="ClearButtonBorder"
Grid.Column="1"
CornerRadius="0,3,3,0"
Background="Blue">
<Border.Triggers>
<Trigger Property="Border.IsMouseOver" Value="True">
<Setter Property="Border.Background" Value="Green" />
</Trigger>
<Trigger Property="Border.IsMouseOver" Value="False">
<Setter Property="Border.Background" Value="Blue" />
</Trigger>
</Border.Triggers>
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="X" />
</Border>
Я действительно не получаю эти триггеры и стили в WPF. Это - такое перетаскивание, чтобы не смочь достигнуть чего-то простого как этого.. Предоставьте решение для меня и помогите мне понять, какого черта является неправильным с моим кодом? Огромное спасибо.
Да, это сбивает с толку ...
Согласно этой записи в блоге , похоже, что это упущение WPF.
Чтобы это работало, вам нужно использовать стиль:
<Border Name="ClearButtonBorder" Grid.Column="1" CornerRadius="0,3,3,0">
<Border.Style>
<Style>
<Setter Property="Border.Background" Value="Blue"/>
<Style.Triggers>
<Trigger Property="Border.IsMouseOver" Value="True">
<Setter Property="Border.Background" Value="Green" />
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="X" />
</Border>
Я думаю, эта проблема не так распространена, поскольку большинство людей склонны выделять такие вещи в стиль, поэтому его можно использовать для нескольких элементов управления.