在 Silverlight 中,通过对对象的个别属性应用动画,可以对对象进行动画处理。
在 Silverlight 中,您只能对值类型为 Double、Color或 Point 的属性执行简单的动画处理。此外,还可以使用 ObjectAnimationUsingKeyFrames 对其他类型的属性进行动画处理,但是这需要使用离散内插(从一个值跳到另一个值),而多数人认为这不是真正的动画。
若要向对象应用动画,请创建 Storyboard 对象并使用 TargetName 和 TargetProperty 附加属性指定要进行动画处理的对象和属性。
若要对采用 Double 值的属性(例如元素的 Width 属性)进行动画处理,请使用生成 Double 值(DoubleAnimation)的动画。若要对采用 Point 值的属性进行动画处理,请使用生成 Point 值(如 PointAnimation 等)的动画。
Silverlight 提供两大类动画类型,From/To/By 动画和关键帧动画。
动画是时间线
所有动画均继承自 Timeline 对象,因此所有动画都是专用类型的时间线。Timeline 定义时间段。您可以指定时间线的以下"计时行为":其 Duration 和重复次数,甚至可以为时间线指定时间走得多快。
因为动画是 Timeline,所以它还表示一个时间段。在动画的指定时间段(即 Duration)内运行动画时,动画会计算输出值。在运行或"播放"动画时,动画将更新与其关联的属性。
Duration、AutoReverse 和 RepeatBehavior 是三个常用的计时属性。
一些更有趣的动画(如旋转、扭曲和重新缩放对象)是通过对 Transform 对象的属性进行动画处理实现的。
缓动函数
通过缓动函数,您可以将自定义算术公式应用于动画。例如,您可能希望某一对象逼真地弹回或其行为像弹簧一样。您可以使用关键帧动画甚至 From/To/By 动画来大致模拟这些效果,但可能需要执行大量的工作,并且与使用算术公式相比动画的精确性将降低。
除了通过从 EasingFunctionBase 继承来创建您自己的自定义缓动函数外,您还可以使用运行时提供的若干缓动函数之一来创建常见效果。
-
BackEase:在某一动画开始沿指示的路径进行动画处理前稍稍收回该动画的移动。
-
BounceEase:创建弹回效果。
-
CircleEase:创建使用循环函数加速和/或减速的动画。
-
CubicEase:创建使用公式 f(t) = t3 加速和/或减速的动画。
-
ElasticEase:创建表示弹簧在停止前来回振荡的动画。
-
ExponentialEase:创建使用指数公式加速和/或减速的动画。
-
PowerEase:创建使用公式 f(t) = tp(其中,p 等于 Power 属性)加速和/或减速的动画。
-
QuadraticEase:创建使用公式 f(t) = t2 加速和/或减速的动画。
-
QuarticEase:创建使用公式 f(t) = t4 加速和/或减速的动画。
-
QuinticEase:创建使用公式 f(t) = t5 加速和/或减速的动画。
-
SineEase:创建使用正弦公式加速和/或减速的动画。