Je veux être en mesure de définir une propriété avec un EventTrigger, il y a un certain nombre de problèmes avec cela.
1) EventTriggers seulement des Actions de soutien, donc, je dois utiliser un storyBoard pour définir mes propriétés.
2) une Fois que j'utilise un story-board, j'ai deux options:
- Arrêt: une Fois que l'animation a cessé de la valeur revient à l'avant de l'animation a commencé
- HoldEnd: Cela verrouille la propriété, de sorte que ni le code, ni d'interaction de l'utilisateur peut modifier la propriété que l'animation est maintenant.
Dans l'exemple ci-dessous, je tiens à mettre l'IsChecked valeur False à la propriété lorsque le bouton est cliqué et je veux que l'utilisateur puisse modifier la IsChecked et/ou je veux être en mesure de modifier la propriété dans le code.
Exemple:
<EventTrigger
SourceName="myButton"
RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames
Storyboard.TargetName="myCheckBox"
Storyboard.TargetProperty="IsChecked"
FillBehavior="Stop">
<DiscreteBooleanKeyFrame
KeyTime="00:00:00"
Value="False" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
Je me rends compte que je peux utiliser le "Terminé" événement après le storyboard complète pour définir la valeur False. Cependant, dans ce cas je tiens à contenir la logique dans le code XAML, que cette logique peut être utilisé sur un contrôle personnalisé et n'est spécifique à l'INTERFACE utilisateur.