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

71
задан Abdulrahman Bres 17 October 2016 в 12:29
поделиться

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>

Я думаю, эта проблема не так распространена, поскольку большинство людей склонны выделять такие вещи в стиль, поэтому его можно использовать для нескольких элементов управления.

135
ответ дан 24 November 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: