Dans WPF, est-il possible de spécifier plusieurs événements routés pour un même déclencheur d'événements?
-
19-08-2019 - |
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-->
...
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