Dans WPF, est-il possible de spécifier plusieurs événements routés pour un même déclencheur d'événements?

StackOverflow https://stackoverflow.com/questions/654368

Question

J'ai un déclencheur d'événement que je souhaite déclencher en réponse à deux événements routés différents. Je ne veux pas répéter le code de réponse à l'événement (en XAML) deux fois. Puis-je spécifier plusieurs événements routés pour une déclaration de déclencheur d'événement unique?

Exemple d'événement unique:

<Style.Triggers>
    <EventTrigger RoutedEvent="Button.MouseEnter">
        <--XAML MAGIC-->
        ...
Était-ce utile?

La solution

Désolé ... L'implémentation de EventTrigger par WPF ne permet qu'un seul événement routé.

Généralement, vous déclenchez un story-board à partir d'un événement routé. Je suggérerais le compromis suivant:

<!--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>

Le concept est de réduire le code en double en partageant les ressources.

J'espère que ça aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top