一个开发经验丰富的编程人员,应该是了解WPF的。它是一款专门用来处理图形界面的开发辅助工具。对WPF动画类的支持大部分收集在 System.Windows.Media.Animation 命名空间中。#t#
这是一个大型命名空间,其中定义了 164 个类专用于设置 22 种特定数据类型的动画属性。这 22 种数据类型包括基本数据类型(如 byte、int 和 double),也包括更特殊的类型(如 Matrix、Point3D 和 Quaternion)。
v资源毫无疑问是引人入胜的作品,但恐怕只有非编程人员才会认为这 22 种数据类型就足够满足各种应用程序。我个人经常开发希望对整个对象集合实现动画效果的应用程序,尤其是坐标点的集合。现有的 API 为我们提供了类(如 PointAnimation 和 Point3DAnimation)来制作单独的 2D 或 3D 坐标的动画,但我希望 PointCollectionAnimation 和 Point3DCollectionAnimation 类通过在两个集合的相应成员之间插入来制作整个坐标点集合的动画。
通常,我们可能会责怪 Microsoft .NET Framework(尤其是 WPF)使得定义对象集合如此轻松,使用起来如此便利,就像使用对象本身一样。WPF 已定义了 PointCollection 和 Point3DCollection 类,而且在 XAML 中,这些集合的使用方法非常简单。在 XAML 中,分配 Point 类型的属性和分配 PointCollection 类型的属性之间的差别就像键入“100 50”和“100 50, 40 25, 35 80, 50 100”之间的差别一样。因此,我想为什么使这些类型的属性具有动画效果不能像这般简单呢?
假定 PointCollectionAnimation 类将会使 PointCollection 类型的属性具有动画效果。WPF 中内置的五个类具有该类型的属性:Polyline、Polygon(两者均源于 Shape)、PolyLineSegment、PolyBezierSegment 和 PolyQuadraticBezierSegment(源于 PathSegment)五个类的属性均指定为 Points。通过使这些 Points 属性具有动画效果,您可以将图形数字从一个形状更改到另一个具有单个动画的形状。
据我所知,Point3DCollection 仅能在一个类中显示,即位于 WPF 3D 图形系统中心的 MeshGeometry3D 类。通过制作 Point3DCollection would 动画,可以非常轻松地实现 3D 对象变形(通常被认为是相当高级的 3D 编程任务)。
正是在计算机屏幕上切换、变形和改变 2D 和 3D 图的形状的想象促使我在扩展WPF动画类的道路上不断前进。