深入解析WPF编程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

对几乎所有的应用程序来说,用户界面都是重要的组成部分。现在,用户对这些界面的要求越来越高。当然,我们仍需要传统的菜单驱动式GUI。但是除此之外,许多应用程序还需要能够播放视频、运行动画、采用二维或三维图形,以及调用不同的文档。无论是通过安装的桌面客户端还是通过Web浏览器来访问应用程序,上述功能都必须可以正常使用。

一直以来,Windows上的这些用户界面功能都是以不同方式提供的。例如,开发人员可以使用.NET Framework中的Windows Forms来创建Windows GUI,使用HTML、Java小程序或JavaScript代码创建Web浏览器界面,或者使用Windows Media Player、Adobe的Flash Player等软件播放视频,文档格式则以Microsoft Word、Adobe PDF或其他软件进行定义。很明显,开发人员面临着巨大的挑战:如何使用不同的技术,为不同的客户端创建一致的用户界面呢?这相当困难。

Windows Presentation Foundation(WPF),最初代号为“Avalon”,就是为解决这一难题而设计的。WPF为所有的这些用户界面提供一致的技术基础,从而大幅度简化了开发人员的工作。WPF采用更为现代的方法,支持视频、动画、二维或三维图形以及各种类型的文档,从而可以让用户以全新的方式处理信息。此外,WPF还为桌面客户端和浏览器客户端提供了通用基础,大大简化了二者的应用程序开发工作。

另一个长期困扰用户界面开发人员的问题是,如何创建高效界面需要的不同角色。软件开发人员需要编写相应的界面逻辑,但是,他们并不是定义界面感观的最佳人选。一般来说,人机交互领域的设计人员和专家更适合这一工作。但是在以前的技术(如Windows Forms)背景下,这些问题完全由开发人员决定。开发人员和设计人员之间没有实现真正有效的协作。WPF借助于可扩展应用程序标记语言(XAML)解决这一问题。XAML是一种基于XML的语言,允许以声明方式指定用户界面,而非代码。这样,开发工具就能够根据设计人员创建的可视化显示,更加容易地生成和使用界面规范。Microsoft的一款新产品Expression Blend就是为此而设计的。设计人员可以使用它创建界面外观,然后生成所创建界面的XAML定义。开发人员将这些定义导入Visual Studio之后,就可以着手构建界面所要求的逻辑了。这样就实现了界面与逻辑的分离。

通过提供更强大的图形支持功能,WPF使得一系列数据可视化选项成为可能,而这依靠Windows Forms或其他的早期技术是不可能实现的。通过本书的学习,你可以了解WPF程序的编写全过程,从而深入地研究这一未来主流的界面设计技术。

本书的主要内容

第1章主要介绍.NET 3.0的各组成部分,包括WPF、WCF、WF、LINQ、CardSpace、C#3.0、LINQ等,以及如何配置开发环境以构建.NET 3.0/C# 3.0/LINQ应用程序。

第2章介绍在WPF中建立基于浏览器类型的应用程序和基于安装类型的应用程序F、WPF的架构,以及在应用程序中使用的一些全局对象。

第3章主要讲述XAML语法及其与.NET代码间的关系。

第4章介绍使用Expression Blend创建了第一个基于XAML的应用程序,并且使用本地简单的XML数据对应用程序进行了数据绑定。

第5章我们使用Visual Studio 2005建立了一个应用程序以及如何将应用程序数据绑定到WCF所建立的多个服务的技术,如何扩展应用的原型等。

第6章我们学习了在WPF开发中需要用到的多种不同的布局控件、多种面板诸如StackPanel、DockPanel,以及如何使用它们相互协作有效地对界面上的控件实施布局。

第7章讲述了XAML API中主要控件类型、数据绑定的不同方式,以及通过XMLDataProvider表现独立的XML数据及外部XML的文件。另外,还介绍了功能更强的ObjectDataProvider。

第8章主要介绍画笔的使用;主要的几何形状和路径;画曲线和贝塞尔曲线、绘制多边形、WPF图像API及操作位图图像;使用MediaElement控件编写多媒体界面。

第9章介绍了支持XAML的几种动画类型、Spline的概念、时间线的概念,以及使用Expression Blend制作动画。

第10章介绍了用点和顶点在3D空间中制作简单的2D图形;在XAML中使用ViewPort3D定义3D可视范围;不同类型的灯光和材质,并应用到对象或场景中;如何从网格中建立对象模型。

第11章介绍了使用WPF技术建立各种应用程序类型,以及它们的部署和在最终用户桌面上的管理;WPF窗体应用程序在“在线/离线”模式下的行为;如何使用ClickOnce技术实现智能更新等。

本书的读者对象

本书适合于有编程经验的开发人员,最好具有在.NET Framework平台上使用C#语言编程的经验,因为涉及WinForm和WebForm两种应用的编程,所以希望读者熟悉这两种应用开发。

学习本书所需要的准备工作

为了能够运行本书中的示例,请确保您的计算机上安装了如下软件:

● 带有IIS 5或更高版本的Windows XP、Windows Server 2003或Windows Vista操作系统;

● 安装有Visual Studio 2005(安装时已包含.NET Framework 2.0)、.NET Framework 3.0、Windows Vista SDK、Extensions for Windows Workflow Foundation、Extensions for Windows Presentation Foundation、Windows Communication Foundation、C# 3.0和LINQ社区预览版。

本书中的代码不能在.NET Framework 2.0上运行,所有的安装文件和代码都包含在随书附赠的DVD光盘中。

用户支持

笔者很重视读者的意见,并想知道每位读者对本书的看法,包括读者喜欢和不喜欢的内容,以及读者希望笔者下一次能够完善的地方。您可以发送电子邮件(地址为wangsaokui@sohu.com)向笔者反馈意见。电子邮件的主题中请一定要包含书名。

示例代码

本书包含2张DVD配套光盘,在光盘中有所有章节的示例代码。

勘误表

笔者已经尽最大努力确保本书中的文字和代码没有错误,但文字和程序bug肯定是在所难免的。如果你发现本书存在错误,例如错别字或错误的代码片断,请反馈给笔者,将不胜感激。勘误表可以节约其他读者学习本书的时间,而且能够帮助笔者对本书进行更高质量的修改和完善。笔者将定期检查反馈信息,如果正确,将被粘贴到本书的勘误页面上,或者在本书的后续版本中使用,可访问www.broadview.com.cn网站。

E-mail支持

如果您希望直接向笔者咨询本书中的问题,可以发送电子邮件到wangsaokui@hotmail.com,典型的电子邮件应包括以下内容:

(1)在主题中必须有本书的书名和存在问题的页码。

(2)邮件内容应包括读者的名字、联系信息和问题。