首先确定一点是:动画是WPF模型的核心部分。这就意味着为了让动画运行起来,不需要使用计时器以及事件处理代码。而可以使用声明的方式创建动画,使用少数几个类中的某
个配置动画,并且为了使动画运行起来不需要编写任何C#代码。
以前基于windows的平台中(如windows窗体和MFC),开发人员必须从头构建它们自己的动画系统,最常用的技术是结合使用计时器和一些自定义的绘图逻辑。WPF通过一个
新的基于属性的动画系统,改变了这种状况。
一、传统动画(基于时间的动画)
传统动画存在的一些问题:
1、它绘制像素,而不是控件;
2、它假定单一动画;
3、动画帧速率是固定的;
4、复杂的动画需要指数级增长的更加复杂的代码;
二、属性动画(基于属性的动画)
动画是被看作是一系列帧。为了执行动画,就要逐帧地显示这些帧,就像定格的视频。而WPF动画使用一个完全不同的模型,本质上,WPF动画只不过是在一段时间间隔内修
改依赖项属性值的一种方式。(创建正确动画的秘密在于决定需要修改什么属性)
如果希望实现不能通过修改一个属性实现的其他变化,那么上述方法就行不通,例如,不能将添加或删除元素作为动画的一部分。同样,不能要求WPF在开始场景和结束场景之
间执行过渡(尽管一些灵巧的变通方法可以模拟这种效果)。最后,只能为依赖项属性应用动画,因为只有依赖项属性使用动态的属性识别系统,而该系统将动画考虑在内。