WPF动画类扩展知识一点通

开发 开发工具
WPF动画类的支持,一般都集中在System.Windows.Media.Animation这样一个大型的命名空间中。在这里我们就来具体了解一下WPF动画类扩展的相关概念。

一个开发经验丰富的编程人员,应该是了解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动画类的道路上不断前进。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-31 13:45:13

Silverlight

2009-12-15 10:31:30

Ruby rails页

2009-11-03 09:09:19

VB.NET类

2009-11-10 17:04:29

VB.NET基础知识

2009-12-15 14:27:30

Ruby存取器

2010-05-20 15:29:43

优化IIS

2009-10-22 09:29:23

CLR是什么

2009-11-09 13:56:15

WCF Stream对

2009-11-06 10:54:19

WCF服务方式

2009-11-02 16:30:29

VB.NET构造器

2009-12-17 09:14:14

Ruby on Rai

2009-10-28 14:30:16

VB.NET RmDi

2009-11-04 14:37:40

ADO.NET XML

2009-12-17 10:29:46

Cisco路由器

2010-01-04 19:22:49

Silverlight

2011-02-15 09:06:57

企业网络管理CISCO 3550交交换机端口

2009-10-26 10:12:14

VB.NET操作MsA

2009-11-02 11:22:59

VB.NET文本文件操

2016-10-20 15:54:12

CanvasHtml5Javascript

2012-07-27 09:36:33

金山WPSWPS移动版
点赞
收藏

51CTO技术栈公众号