7、TimeLine类 TimeLine类的常用属性
7.1、AccelerationRatio和DeceleRation属性 可以通过AccelerationRatio和DeceleRation属性压缩部分时间轴,使动画运行的更块,并将拉伸其他时间进行补偿,使总时间保持不变。这两个属性都表示百分比值,例如,将AcceleRation属性设置为0.3,表示希望使用动画持续时间中前30%的时间进行加速。例如1个10秒的动画中,前三秒会加速运行,而剩余的7秒会以恒定不变的速度运行,如果将DeceleRation属性设置为0.3,那么最后3秒会减速运行。
7.2、RepeatBehavior属性 RepeatBehavior:用来声明动画重复次数,支持3种类型值:重复次数(格式-次数+X),;一个时间段(格式:时:分:秒);特殊值Forever(代表无限循环) 使用RepeatBehavior属性可以控制如何重复运行动画,如果希望重复固定次数,应为RepeatBehavior构造函数传递合适的次数。 还可以设置RepeatBehavior为永久重复。
8、故事板。 WPF动画通过一组动画类表示,使用少数几个属性设置相关信息,如开始值、结束值以及持续时间。这显然使他们非常适合于XAMl,不是很清晰的是,如何为特定的事件和属性关联动画,以及如何在正确的时间触发动画。 (1)、故事板: 故事板是BeginAnimation()方法的XAML等价物,通过故事板将动画指定到合适的元素和属性。 故事板是增强的时间线,可用来分组多个动画,而且具有控制动画播放的能力—暂停、停止以及播放位置。然而Storyboard类提供的最基本功能是,能够使用TargetProperty和TargetName属性指向某个特定属性和特定元素,换句话说,故事板在动画和希望应用动画的属性之间架起了一座桥梁。其中TargetProperty属性和TargetName属性都是附加属性。
(2)、事件触发器: 事件触发器响应属性变化或事件(如按钮的click事件),并控制故事板。 事件触发器可以在以下4个位置定义事件触发器。 (1)、在样式中(Style.Triggers集合)。 (2)、在数据模板中(DataTemplate.Triggers集合)。 (3)、在控件模板中(ControlTemplate.Triggers集合)。 (4)、直接在元素中定义事件触发器(FrameworkElement.Triggers集合)。 当创建事件触发器时,需要指定开始触发器的路由事件和触发器执行的一个或多个动作。对于动画,最常用的动作是BeginStoryboard,该动作相当于调用BeginAnimation()方法。所有事件触发器都可以启动动作,所有动作都由继承自System.Windows.TriggerAction的类表示。
9、使用样式关联触发器。 有三种基本类型的WPF触发器:属性触发器、数据触发器以及事件触发器。使用触发器是关联动画的最常用方式,但并不是唯一的选择。
10、同步的动画 StoryBoard类间接地继承自TimeLineGroup类,所以StoryBoard类能包含多个动画,这些动画可以作为一组进行管理,这意味着他们可以在同一时间开始
|