Можно ли в WPF указать несколько перенаправленных событий для одного триггера? - PullRequest
3 голосов
/ 17 марта 2009

У меня есть триггер события, который я хочу запустить в ответ на два разных перенаправленных события. Я не хочу повторять код ответа на событие (в XAML) дважды. Могу ли я указать несколько перенаправленных событий для одного объявления триггера события?

Пример одного события:

<Style.Triggers>
    <EventTrigger RoutedEvent="Button.MouseEnter">
        <--XAML MAGIC-->
        ...

1 Ответ

5 голосов
/ 17 марта 2009

Извините ... Реализация 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>

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

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

...