Можно ли в WPF указать несколько перенаправленных событий для одного триггера?
У меня есть триггер события, который я хочу запустить в ответ на два разных перенаправленных события. Я не хочу повторять код ответа на событие (в XAML) дважды. Могу ли я указать несколько перенаправленных событий для одного объявления триггера события?
Пример одного события:
<Style.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<--XAML MAGIC-->
...
1 ответ
Решение
Извините... Реализация EventTrigger в WPF допускает только одно перенаправленное событие.
Обычно вы запускаете раскадровку из перенаправленного события. Я бы предложил следующий компромисс:
<!--Define a storyboard as a resource-->
<Storyboard x:Key="MyStoryboard1">
<!--Many properties and etc...-->
</Storyboard>
<Style.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<BeginStoryboard Storyboard="{StaticResource MyStoryboard1}">
<!--Other properties/name if necessary-->
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Button.MouseDown">
<BeginStoryboard Storyboard="{StaticResource MyStoryboard1}">
<!--Other properties/name if necessary-->
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
Концепция заключается в уменьшении дублирования кода путем совместного использования ресурсов.
Надеюсь это поможет!