Можно ли в 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>

Концепция заключается в уменьшении дублирования кода путем совместного использования ресурсов.

Надеюсь это поможет!

Другие вопросы по тегам