Übersetzen Sie XAML EventTrigger in C# Code
-
06-07-2019 - |
Frage
Kann mir jemand sagen, wie das in C#aussehen würde?
<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>
Ich brauche den "RoutEDEvent" -Part nicht, weil ich den Code ausführen möchte, wenn der Benutzer programmgesteuert auf eine Schaltfläche klickt (Click-EventHandler). sonst und muss die gesamte Animation in Code-Behind durchführen.
Danke im Voraus!
Memphiz
Lösung
Ich habe es gelöst!
Geben Sie dem Storyboard einfach einen X: Namen und nennen Sie es dann so:
<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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow