Traducir XAML EventTrigger a código C #
-
06-07-2019 - |
Pregunta
¿Alguien puede decirme cómo se vería esto 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>
No necesito la parte '' RoutedEvent '' porque quiero ejecutar el código cuando el usuario hace clic en un botón mediante programación (Click-EventHandler). Primero se llama al controlador de evento Routed, por eso no puedo haga un if-else y necesite hacer toda la animación en código subyacente.
Gracias de antemano!
MemphiZ
Solución
¡Lo resolvió!
Solo dale al Storyboard una x: Nombre y luego llámalo así:
<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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow