Как установить событие/триггер 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. Это такое сопротивление, чтобы не быть в состоянии достичь чего-то простого, как это.. Пожалуйста, предоставьте решение для меня и помогите мне понять, что, черт возьми, не так с моим кодом? Спасибо пучок.

722   1  

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

    Ничего не найдено.