System.Windows.Media.Animation包含了许多看起来差不多的动画类,因为不同的数据类型要通过不同的动画类来实现动画的。
WPF包含了22个不同的类型的内置动画类,如下表所示。
核心的.NET数据类型 |
WPF数据类型 |
Boolean |
Thickness |
Byte |
Color |
Char |
Size |
Decimal |
Rect |
Int16 |
Point |
Int32 |
Point3D |
Int64 |
Vector |
Single |
Vector3D |
Double |
Rotation3D |
String |
Matrix |
Object |
Quaternion |
- 创建动画
创建动画要根据要改变的依赖属性的类型选择合适的动画类型,设定初始值、结束值以及Duration。然后将动画与要“动”的元素和元素的属性关联起来。动画类有大量的属性,它们会用一些有趣的方式来定制其行为。
- 线性内插
17个XXXAnimation类通过线性内插来平滑地改变时间段内XXX类型值,这一点很重要,不需要我们人为地干预。值的变化也就是以初始值与结束值连线的斜率来变化。
- 动画的重用
完全相同的动画可以应用到多个元素,甚至是同一个元素的多个属性上。
- 控制持续时间
动画的时间可以通过Duration属性进行设定。如果不设定,默认值是1秒。构建一个Duration实例的方法通常是使用一个标准的TimeSpan对象,可以用FromSeconds等静态方法创建或Parse一个形如“天.时:分:秒.小数”的字符串。另外,Duration有两个TimeSpan无法表达的值:Duration.Automatic和Duration.Forever。Automatic是任何动画类的Duration属性的默认值,等同于1秒的TimeSpan。Forever表示无限长时间。
- From和To的灵活性
From和To同时设定,则值在指定的时间从From变化到To,如果From和当前值不同,则会造成一定的跃变,这种值的跳跃往往会产生刺眼的效果;
只设定To,则值在指定的时间从当前值变化到To;
只设定From,则值在指定的时间从From变化到当前值;
From和By的结合,By表示变化的幅度,To = From + By;
注意,To和By不应该同时出现,如果同时出现,则By会被忽略。
来源:https://www.cnblogs.com/xirihanlin/archive/2009/03/02/1401438.html