未来的GDI:WPF技术纵览
Visual对象
WPF根据代码创建的元素层次结构,把它们对应为一种树型结构。视觉树(Visual Tree)定义了元素对象的提交(Rendering)行为。视觉树中的每个结点都是一个Visual对象。由于UIElement是从Visual派生,因此所有的UIElement都是一个Visual对象。
每个Visual对象都实现了IVisual接口,这个接口封装的一些比较通用,而用户不关心的功能。在多数时候,我们不需要自己实现这个接口。下面简单列举了在Visual对象拥有的基本功能:
= 变换(Transform)Visual对象的每个子元素。
= 支持透明(Opacity)属性。
= 支持裁剪(Clip)功能。
= 支持内容(Content)模板。
= 提供点击测试(Hit Testing)服务。
= 提供坐标变换服务。
= 提供边界框(Bounding Box)服务。
然后,每个Visual派生对象根据类型的不同,扩展了不同的功能。比如ContainerVisual表示Visual对象的集合。这样把每个元素的通用行为进行抽象、封装之后,提供了非常方便的元素定义和操作方法。
现在,你应该能体验到WPF给我们的开发所带来的方便之处。它不但利用Direct3D实现了非常绚丽的用户界面效果。而且提供开发框架非常的易于使用、扩展。因此,我们有理由相信WPF技术一定会很快的取代Windows Forms。并随着Windows Vista操作系统的推广,它的应用也一定会根据广泛。
作者简介:赖仪灵,2006、2007年微软最有价值专家(Visual C++)。一直从事Windows图形、多媒体相关技术的开发。目前正学习研究Windows Vista和WPF的相关技术。喜好技术写作,偶有文章发表,现正合译《ATL Internals》第二版。