WPF高级编程的序言
对于使用Microsoft技术的开发人员来说,这是一个激动人心的时刻。众多新平台、新技术以及新工具的不断涌现,使开发人员的舞台迅速扩大。其中,来自微软的一个新平台是.NETFramework3.0,WindowsPresentationFoundation(WPF)是该平台的一个核心组件,也是本书的主题。WPF为开发人员和设计人员提供了一个统一的平台,便于他们创建能够充分利用现代PC硬件设备的图形功能的多媒体(rich-media)应用程序。
在过去的几十年中,我们经历了使用命令行界面的漫长时间。今天的应用程序用户,希望使用新型的、吸引人的可视化交互界面,其中部分原因是他们在Internet上面对的是媒体和内容都很丰富的用户界面。WPF正是为迎合这种需求而诞生的,它可以综合使用多种类型的媒体,包括动画、视频和音频,来创建富用户界面。此外,通过使用一种新的标记语言XAML和一套新的设计工具MicrosoftExpressionBlend,设计人员和开发人员能够在开发同一个项目时实现无缝合作,这在以前是不可能的。在WPF推出之前,设计人员创建各种图形元素,并将这些图形元素以图像文件的形式交给开发人员,然后开发人员使用这些图形元素构建用户界面。设计人员可以使用ExpressionBlend设计用户界面,并将设计模型保存为XAML文件,然后只需将XAML文件交给开发人员,开发人员再在VisualStudio中使用WPF编写代码即可。
本书将详细讲解WindowsPresentationFoundation的概念和构成组件。通过本书可以学习如何创建富用户界面,如何使用WPF提供的各种新控件,以及如何利用WPF提供的新内容模型。本书将探讨WPF对象模型,以及WPF新提供的子系统,例如附属属性系统(dependencypropertysystem)和事件传递模型(routedeventmodel)。在本书中还将介绍如何开发和配置用于桌面和浏览器的WPF应用程序。本书中还包括新的XAML语法(XAML是一种为WPF应用程序定义用户界面的新标记语言,不管这些应用程序是基于Windows环境的还是面向Web的)、ExpressionBlend使用基础和Microsoft新提供的图形设计工具。
WPF是一个非常大的平台,本书将尽可能多地涉及其各个方面,我们的目标是使读者不仅了解WPF平台提供了哪些内容,而且学会如何使用该平台。当然,因为WPF是一个很大的平台,所以本书中不可能囊括全部内容,但是我们力争让读者掌握开始使用WPF的一些基本知识。本书不仅有趣、富有教育性,而且能够为读者使用WindowsPresentationFoundation开发富用户界面打下坚实的基础。
本书读者对象
本书主要面向准备学习使用Microsoft新的呈现架构(presentationframework)WPF开发应用程序的.NETFramework开发人员。对于正在考虑使用新的ExpressionBlend系列设计工具的设计人员,以及那些想了解这些工具是如何加强与设计人员合作的开发人员,本书也是很有帮助的。对于没有.NET开发经验的程序员,本书在学习新的XAML语法上有一定的参考价值。但是对于这部分读者,书中的大部分内容比较高级,因此建议先学习.NET2.0,作为学习WPF的第一步。
本书适合以下几类读者:
●准备学习WPF新平台的Microsoft.NET应用程序开发人员。
●准备研究MicrosoftExpressionBlend工具,学习使用WPF及相关工具所提供的协作特性的设计人员。
此外,熟悉以下相关技术的人员,也很适合阅读学习本书:
●Microsoft.NETFramework
●C#
●Web服务
●HTML
●CSS
以上读者,对.NETFramework和C#有一个基本理解是必需的,而熟悉Web服务、HTML标记语言以及CSS概念对于学习本书中的内容有帮助,但不是必需的。对于没有.NETFramework和C#基础的开发人员,可先学习《.NETFramework2.0高级编程》和《C#2005高级编程(第4版)》(均由清华大学出版社引进并出版)这一类的书籍。
读者并不需要逐章学习本书。我们建议先学习第1章至第3章,对WPF和XAML有一个基本理解,然后浏览后面的几章,从中挑选出您感兴趣或需要的部分进行学习。
本书组织结构
本书先介绍了相关背景,包括Microsoft为什么以及怎样从长期以来使用的Win32平台转向WPF。然后,对WPF及其核心组件和子系统进行了概述,接下来介绍了ExpressionBlend工具的使用,并通过示例演示了如何创建富用户界面。后续几章具体针对与WPF开发相关的各个主题。在本书的最后简要介绍了与WPF平行的其他两个组件,这些组件共同构成了.NETFramework3.0这一重要而又强大的平台。
本书各章内容如下所示:
●第1章 WPF概述 对于曾经开发过Windows应用程序的程序员而言,本书展示了开发Windows应用程序的一些精彩的新变化。此外,对曾经开发过Web应用程序的程序员来说,本书提供的开发方式更令人激动。 Windows Presentation Foundation,也称做WPF,是下一代图形平台。基于该平台可以构建运行于Windows Vista之上的Windows应用程序和Web应用程序,Windows Vista是Microsoft最新发布的新一代操作系统。WPF为建立优雅的并且非常灵活的用户体验提供了基础,这种用户体验是通过同时使用用户界面、应用程序逻辑、文档以及多媒体实现的。 注意: 尽管WPF最初的目标是用于Windows Vista平台,但是作为.NET Framework 3.0(即以前的Win FX)的一部分,WPF也可以在Windows XP和Windows Server 2003平台上使用。 通过使用XAML与Microsoft Expression Designers等工具,应用程序的界面和功能可以得到进一步加强,这些工具使设计人员和开发人员可以同时开发用户界面与应用程序逻辑,从而共同提供完美的用户体验。 本章对WPF进行概述,包括以下内容: Windows API的演变。 .NET Framework 3.0,基于Windows开发的下一代API。 WPF体系结构与开发模型。 XAML,支持WPF开发的声明式语言。 开发WPF应用程序的相关工具。 1.1 Windows API的简要历史 Windows API为应用程序开发提供了Windows操作系统支持的核心功能,主要用于C/C++语言的开发,Windows API是应用程序和Windows之间最直接的交互机制。 Windows API包含以下功能组合: 基本服务——提供对计算机核心资源的访问,例如内存、文件系统、设备、处理器以及线程等。 ●第2章,“WPF与.NET编程”--本章首先介绍了构建与运行WPF应用程序的需求,然后是应用程序的各子系统,例如附属属性与事件传递系统。此外,还介绍了WPF提供的各种控件,以及如何使用平台提供的新结构修改和扩展这些控件。
●第3章,“WPF应用程序深入剖析”--本章介绍了在WPF中可以使用的各种应用程序模型,例如可以独立运行的与基于浏览器的应用程序。对相关程序文件及配置设置都进行了剖析,从而使读者可以快速理解并能开发WPF应用程序。
●第4章,“使用MicrosoftExpressionBlend构建富用户界面:第一部分”--本章介绍了WPF应用程序设计人员可以使用的新工具,重点介绍了MicrosoftExpressionBlend。在本章中读者可以了解到ExpressionBlend提供的设计环境,以及工程文件结构。本章内容还包括创建矢量图形、布局、动画和控件。
●第5章,“使用Microsoft ExpressionBlend构建富用户界面:第二部分”--本章在第4章介绍的相关内容的基础上,介绍了如何为程序添加交互功能以处理用户输入、事件与命中测试。本章还给出了一系列的动画示例程序,以及与WPF绘图相关的API。本章还演示了ExpressionBlend与VisualStudio2005提供的协作特性。
●第6章,“特殊效果”--本章探讨了WPF提供的丰富功能与特殊效果,包括画刷、位图效果以及变换等。有了这些功能,使用WPF可以很容易地快速创建富用户界面。
●第7章,“自定义控件”--本章专门讲解了在WPF中自定义控件的开发。通过模板与类型的扩展支持,在WPF中自定义控件所需做的工作是很少的。但是在很多情况下需要创建自定义控件。本章不仅介绍如何创建自定义控件,还介绍了如何确定是否使用模板与类型等内置功能的支持。这些内置功能是非常强大的。
●第8章,“WPF企业开发”--本章探讨了使用WPF开发企业级应用程序时需要考虑的许多问题。应用程序模型、配置、运行环境、安全考虑、导航、状态管理以及本地化等内容,在本章中都进行了探讨。
●第9章,“安全”--本章探讨了WPF的安全特性。WPF应用程序的安全主要与所选择的程序类型和运行环境有关。本章内容包括操作系统安全、CAS安全、Internet安全沙箱以及ClickOnce安全等。
●第10章,“WPF与Win32交互”--本章主要针对WPF应用程序与已存在的Win32应用程序之间的交互问题。本章将解答如何在Win32应用程序中使用WPF,以及如何在WPF应用程序中使用Win32等问题。通过学习本章,读者将了解到在WPF与Win32应用程序中HWND的区别。
●第11章,“高级开发主题”--本章将深入研究本书中涉及的有关问题。首先深入分析WPF体系结构,介绍WPF架构中重要的类,例如Application类、DependencyObject类。然后深入探讨XAML的语法与结构,以及WPF应用程序中的多线程问题。最后,深入分析了.NETFramework3.0的其他两个组件:WindowsWorkflowFoundation与WindowsCommunicationFoundation。
使用本书的条件
为了开发WPF应用程序,以及创建本书中的示例程序,必须首先安装以下软件:
●WindowsSDK
●.NETFramework3.0运行时组件
●带有OrcasCTPWinFX开发工具的VisualStudio2005或OrcasreleaseofVisualStudio2005
注意:
在本书第2章中将给出上述所需软件的更多细节,以及介绍如何获取这些必需的组件。