WPF平台的出现为我们带来非常丰富的功能实现。在这里将会为大家介绍一下有关概念。希望可以提高对大家WPF平台的理解程度。WPF是一个用于开发富客户端应用程序的平台。#t#
它是.NET 3.0框架的一部分,因此已经在Windows Vista中内置,此外它也能够在Windows XP SP 2以及Windows 2003中安装。
构建WPF平台用户界面可以使用.NET对象模型,不过WPF也提供XAML——即eXtensible Application Markup Language——这是一种标记语言,使用户界面的表现能够独立于其行为进行设计。
两种做法实际上是等价的,XAML只是提供了一种额外的语法。不过XAML语法是方便工具创建和使用而设计的,这样的工具能够使设计人员直接进行用户界面设计,而不需要任何编码技能。
WPF平台不是.NET框架中***套用于开发富客户端的API。Windows Forms作为它的前辈,是构建在Win32的窗口系统之上的.NET封装层。尽管Windows Form在Win32之上添加了很多功能,但由于下层UI平台的限制,用它进行开发有时依旧会缩手缩脚。
WPF没有构建在Win32的窗口系统上,而是构建于DirectX之上,这就使得WPF能够完全利用起本机显卡的能力。然而WPF并非只能用于开发视觉效果非凡的应用程序。
WPF的***优势,就是它将许多富客户端的特性集成在同一个平台上,其中大部分的独立特性都单独在其他UI技术中出现过。例如,WPF提供了构建矢量动画和视频的能力,这原本一直是Flash所专长的。
WPF平台提供了传统的Windows控件,例如按钮、列表框以及树型控件等等,它们在Win32和Windows Forms中已经出现了很多年了。此外WPF还提供了流式文本布局,这原来是HTML的能力(尽管目前WPF的文本渲染能力远比HTML和CSS来的强大)。
一些面向HTML的技术,例如JSP和ASP.NET,也曾使用过WPF中标记+后台代码的应用程序构建方式,不过它们只能提供最简单的3D支持,但是OpenGL和DirectX长久以来就拥有强大得多的3D渲染能力。
WPF之前的技术都能各自独当一面,但是很难在同一个应用程序中使用不同的技术。例如,我们很难在Windows的按钮和下拉菜单中使用Flash的动画功能(Flash应用程序一般使用自行开发的控件,但是它们很难与操作系统的当前主题进行统一,可用性也比较差,而它们的行为一般也和真正的控件不同);
我们也很难同时利用HTML中的流式文本布局和富客户端中的数据绑定技术。一般说来,如果您希望混合使用不同的技术,您的应用程序需要被分割为多个独立部分,而这几个部分之间的通信会非常困难,甚至几乎不可能实现。
相反,用WPF就容易多了。不幸的是,目前许多展示这种集成能力的WPF示例都有些脱离实际。在一个流式布局的文档中嵌入一个普通的Windows按钮,再加上一个包含立方体的标题,这个立方体还被一个完整的视频动画包裹起来,这种做法的确能够说明同时使用不同的UI特性并非难事,但问题是,有谁会设计开发这样一个应用程序呢?
事实上,您一般不会将所有的UI功能集成在一个应用程序中。这么做很容易让人想起早期的Web,许多站点都不假思索地利用所有可能的HTML特性。这种做法相当可怕,很长时间以后人们才了解该如何使用合适的技术来构建优秀的Web应用程序。
同样道理,将WPF平台的各种可视化特性进行随意组合的确无比强大和灵活,但是使用其中有限的几种已经足够开发出有用的应用程序了。而且对于视觉效果一般的应用程序开发,WPF也提供了许多有用的支持。