在事件触发器中使用了一个动作,加载动画的BeginStoryboard动作,然而,一旦创建故事版,就可以使用其他动作控制故事板,这些动作类都继承自ControllableStoryboardAction类,控制故事版的主要类如
PauseStoryboard:停止播放动画并且保持当前位置;
ResumeStoryboard:恢复播放暂停的动画;
StopStoryboard:停止播放动画,并将动画时钟重新设置到开始位置
SeekStoryboard:跳到动画时间线中的特定位置,如果当前动画正在播放,就继续从新位置播放。如果当前动画是暂停的,就继续保持暂停
SetStoryboardSpeedRatio:改变整个故事板的SpeedRatio属性值
SkipStoryboardToFill:将故事板移动到时间线的终点。FillBehavior属性设置为HoldEnd,动画继续保持最后的值
RemoveStoryboard:移除故事板,停止所有正在运行的动画,并将属性返回为原来的、最后一次设置的数值
接下来就举个例子,这个动画是渐渐地让图片不透明,然后就是可以控制这个动画的播放。
首先先把页面做好,一张图片,几个按钮:
然后是动画的开始事件:
<!--开始事件-->
<EventTrigger RoutedEvent="Button.Click" SourceName="btn_start">
<BeginStoryboard Name="beginstoryboard1">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="img" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:6"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
首先定义一个事件触发器,然后整一个按钮的单击事件,选择绑定与其相对应的按钮,然后就是故事版的开始,设置图片渐渐变地不透明,持续时间为6秒
再然后就是可以控制这个动画的播放的代码:
<!--停止动画-->
<EventTrigger RoutedEvent="Button.Click"