XAML EventTriggerをC#コードに変換
-
06-07-2019 - |
質問
これが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>
&quot; RoutedEvent&quot;パートは必要ありません。ユーザーがプログラムでボタンをクリックしたときにコードを実行するためです(Click-EventHandler)。最初にRoutedEvent Handlerが呼び出されますif-elseを実行し、コードビハインドでアニメーション全体を実行する必要があります。
事前に感謝します!
MemphiZ
解決
解決しました!
ストーリーボードにx:Nameを付けて、次のように呼び出します:
<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);
所属していません StackOverflow