Traduci XAML EventTrigger in codice C #
-
06-07-2019 - |
Domanda
Qualcuno può dirmi come sarebbe in 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>
Non ho bisogno di " RoutedEvent " -Part perché voglio eseguire il codice quando l'utente fa clic su un pulsante a livello di codice (Click-EventHandler) .. Il gestore di RoutedEvent viene chiamato per primo, motivo per cui non posso fai un if-else e devi fare l'intera animazione in code-behind.
Grazie in anticipo!
MemphiZ
Soluzione
Risolto!
Basta dare allo Storyboard un nome x: e quindi chiamarlo così:
<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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow