Traduire XAML EventTrigger en code C #
-
06-07-2019 - |
Question
Quelqu'un peut-il me dire à quoi cela ressemblerait en C #?
<EventTrigger RoutedEvent="Button.Click" SourceName="btnSplit">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="gridSplit" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
<DoubleAnimation From="1" To="0" Duration="0:0:0.25" Storyboard.TargetName="gridJoin" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
Je n'ai pas besoin de la partie "RoutedEvent" parce que je veux exécuter le code lorsque l'utilisateur clique sur un bouton par programme (Click-EventHandler) .. Le gestionnaire RoutedEvent est appelé en premier. C'est pourquoi je ne peux pas faire un if-else et avoir besoin de faire toute l'animation en code-behind.
Merci d'avance!
MemphiZ
La solution
Résolu!
Donnez simplement au Storyboard un x: Name, puis appelez-le comme suit:
<Storyboard x:Name="storyBoardName">
<DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="grid1" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
<DoubleAnimation From="1" To="0" Duration="0:0:0.25" Storyboard.TargetName="grid2" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>
Storyboard story = (Storyboard)this.FindResource("storyBoardName");
this.BeginStoryboard(story);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow