鉴于我的动画scene1
。如何使用后面的C# code
使用名为“Skip”的按钮暂停它,然后再播放另一个动画scene2
。
<Window.Resources>
<Storyboard x:Key="scene1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="whitebox">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:1.7" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<StringAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Text)" Storyboard.TargetName="charName">
<DiscreteStringKeyFrame KeyTime="0:0:2" Value="Teacher"/>
<DiscreteStringKeyFrame KeyTime="0:0:7.8" Value="Teacher"/>
<DiscreteStringKeyFrame KeyTime="0:0:8" Value="Teacher"/>
</StringAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.HorizontalAlignment)" Storyboard.TargetName="charName">
<DiscreteObjectKeyFrame KeyTime="0:0:2" Value="{x:Static HorizontalAlignment.Left}"/>
<DiscreteObjectKeyFrame KeyTime="0:0:7.8" Value="{x:Static HorizontalAlignment.Left}"/>
<DiscreteObjectKeyFrame KeyTime="0:0:8" Value="{x:Static HorizontalAlignment.Left}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames
(too long… etc.)
答案 0 :(得分:2)
在代码后面,使用this.Resources [“scene1”]来获取Storyboard对象。
Storyboard storyBoard = this.Resources["scene1"] as Storyboard;
storyBoard.Begin();
使用故事板“已完成”事件在故事板完成时启动另一个动画
storyBoard.Completed += eventHandler
呼叫
storyBoard.Stop()
停止动画。
答案 1 :(得分:1)
除了Jeric Paul Calderon的回答之外,还有暂停功能:storyBoard.Pause()
主要的是Pause()
暂停当前播放位置的动画,Stop()
会停止并返回起点。