(Извините, я знаю, что заголовок паршивый; я очень открыт для предлагаемых изменений)
Мне нужна кнопка, чтобы иметь четкий визуальный вид при нажатой кнопке мыши и восстановить ее первоначальный видкогда мышь отпущена (я специально НЕ ищу "переключение" поведения).В моем случае я просто хочу, чтобы цвет фона был другим, пока нажата кнопка мыши.
Я нашел несколько примеров, но все они страдают одной и той же проблемой: эффекты не появляются, пока мышь не покинет кнопку, как будто что-то еще переопределяет цвет фона на основе события, которое у меня есть.специально не охвачены.
Я пробовал несколько вещей, и они либо не работают вообще, либо результат переопределяется стандартным стилем наведения мыши (который является своего рода светло-сине-серым).
Вот одна вещь, которую я попробовал:
<Window.Resources>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="Coral" Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
В результате фон превращается в Коралл, но изменения видны только после того, как мышь уходит;пока мышь находится над, фон остается серовато-синим (стиль наведения мыши по умолчанию).Плюс это оставляет кнопку Коралл после окончания мероприятия;Мне нужен соответствующий триггер для момента IsPressed = False, но если я попытаюсь добавить его, окно вообще не загрузится (исключение разметки выдается).
Я пробовал это, с MouseDown, Button.MouseDown, PreviewMouseDown и т. Д. *
<Window.Resources>
<Style TargetType="Button">
<Style.Triggers>
<EventTrigger RoutedEvent="Button.MouseDown">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="Coral" Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
... и это вообще ничего не сделало.
Так что я думаю, что первый подход - правильный путь, но почему он таков?переопределены стилем наведения мыши?Как заставить стиль IsPressed иметь приоритет?