Traduzir Xaml EventTrigger para C# Código
-
06-07-2019 - |
Pergunta
Alguém pode me dizer como isso seria em 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>
Não preciso da parte "Routedevent", porque quero executar o código quando o usuário clicar em um botão programaticamente (clique em EventHandler) .. O manipulador de roteedEvent é chamado primeiro, e é por isso que não posso fazer um se- outra pessoa e precisam fazer toda a animação em código-behind.
Desde já, obrigado!
Memphiz
Solução
Resolvi-o!
Basta dar um X: Nome e depois chame assim:
<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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow