Как установить событие/триггер MouseOver для границы в XAML?
Как установить событие/триггер 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. Это такое сопротивление, чтобы не быть в состоянии достичь чего-то простого, как это.. Пожалуйста, предоставьте решение для меня и помогите мне понять, что, черт возьми, не так с моим кодом? Спасибо пучок.
1 ответ:
Да, это сбивает с толку...
по данным этот блог, похоже, это упущение из 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>Я думаю, что эта проблема не так распространена, поскольку большинство людей склонны учитывать такие вещи в стиле, поэтому ее можно использовать на нескольких элементах управления.
Comments