《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》[67M]百度网盘|pdf下载|亲测有效
《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》[67M]百度网盘|pdf下载|亲测有效
《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》[67M]百度网盘|pdf下载|亲测有效
《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》[67M]百度网盘|pdf下载|亲测有效
《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》[67M]百度网盘|pdf下载|亲测有效

WPF编程宝典:使用C# 2012和.NET 4.5(第4版) pdf下载

isbn:9787302327738
出版社 清华大学出版社
出版年 2013-08-01
页数 932页
ISBN 9787302327738
装帧 精装
评分 9.0(豆瓣)
限时特惠 00:00:00
活动结束后恢复原价
纸质书参考价 ¥23
电子版限时价 ¥5.99 省 18 元

选择版本

不满意全额退款
发货失败双倍赔偿
邮箱即时发送

内容简介

本篇主要提供WPF编程宝典:使用C# 2012和.NET 4.5(第4版)电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

编辑推荐

  本书特色
  理解WPF编程的基础知识:从XAML到控件,乃至数据流
  开发实用的应用程序,带您实际了解导航、本地化和开发
  探讨WPF提供的高级用户界面控件
  分析如何在WPF中管理文档,涵盖了文本布局、打印和文档打包等所有技术
  使用图形和多媒体来增强应用程序

内容简介

  《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》全面讲解WPF的实际工作原理,是一本WPF著作。在紧贴实用示例这一思想的引导下,列出实用提示,引导以专业的方式使用WPF。《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》开篇介绍WPF基本概念以便为您奠定坚实的基础,并将现有C#技能作为引用框架,然后讨论高级概念,结合实际演示它们的用法,并重点强调了可由此节省的时间和人力成本。

作者简介

  Matthew MacDonald是一位作家、教育家,曾三次荣膺微软MVP。他迄今已经撰写了十多本有关.NET编程的书籍,包括ProSilverlight5inC#(由Apress于2012年出版)和BeginningASPNET4.5inC#(由Apress于2012年出版)。他还曾撰写Your Brain: The Missing Manual(由O'Reilly Media于2008年出版)一书,该书讲述如何大限度地激发大脑潜能,出版后受到广大读者的热烈欢迎。Matthew目前与妻子和两个女儿居住在多伦多。

内页插图

目录

第Ⅰ部分基础知识
第1章 WPF概述
1.1 Windows图形演化
1.1.1 DirectX:新的图形引擎
1.1.2 硬件加速与WPF
1.2 WPF:高级API
1.3 分辨率无关性
1.3.1 WPF单位
1.3.2 系统DPI
1.3.3 位图和矢量图形
1.4 WPF体系结构
1.5 WPF 4.5
1.5.1 WPF工具包
1.5.2 Visual Studi0 2012
1.6小结

第2章 XAML
2.1 理解XAML
2.1.1 WPF之前的图形用户界面
2.1.2 XAML变体
2.1.3 XAML编译
2.2 XAML基础
2.2.1 XAML名称空间
2.2.2 代码隐藏类
2.3 XAML中的属性和事件
2.3.1 简单属性与类型转换器
2.3.2 复杂属性
2.3.3 标记扩展
2.3.4 附加属性
2.3.5 嵌套元素
2.3.6 特殊字符与空白
2.3.7 事件
2.3.8 完整的Eight Ball Answer示例
2.4 使用其他名称空间中的类型
2.5 加载和编译XAML
2.5.1 炅使用代码
2.5.2 使用代码和未经编译的XAML
2.5.3 使用代码和编译过的XAML
2.5.4 只使用XAML
2.6 小结

第3章 布局
3.1 理解WPF中的布局
3.1.1 WPF布局原则
3.1.2 布局过程
3.1.3 布局容器
3.2 使用StackPanel面板进行简单布局
3.2.1 布局属性
3.2.2 对齐方式
3.2.3 边距
3.2.4 最小尺寸、最大尺寸以及显式地设置尺寸
3.2.5 Border控件
3.3 WrapPanel和DockPanel面板
3.3.1 WrapPanel面板
3.3.2 DockPanel面板
3.3.3 嵌套布局容器
3.4 Grid面板
3.4.1 调整行和列
3.4.2 布局舍入
3.4.3 跨越行和列
3.4.4 分割窗口
3.4.5 共享尺寸组
3.4.6 UniformGrid面板
3.5 使用Canvas面板进行基于坐标的布局
3.5.1 Z顺序
3.5.2 InkCanvas元素
3.6 布局示例
3.6.1 列设置
3.6.2 动态内容
3.6.3 组合式用户界面
3.7 小结

第4章 依赖项属性
4.1 理解依赖项属性
4.1.1 定义依赖项属性
4.1.2 注册依赖项属性
4.1.3 添加属性包装器
4.1.4 WPF使用依赖项属性的方式
4.1.5 共享的依赖项属性
4.1.6 附加的依赖项属性
4.2 属性验证
4.2.1 验证回调
4.2.2 强制回调
4.3 小结

第5章 路由事件
5.1 理解路由事件
5.1.1 定义、注册和封装路由事件
5.1.2 共享路由事件
5.1.3 引发路由事件
5.1.4 处理路由事件
5.2 事件路由
5.2.1 RoutedEventArgs类
5.2.2 冒泡路由事件
5.2.3 处理挂起的事件
5.2.4 附加事件
5.2.5 隧道路白事件
5.3 WPF事件
5.3.1 生命周期事件
5.3.2 输入事件
5.4 键盘输入
5.4.1 处理按键事件
5.4.2 焦点
5.4.3 获取键盘状态
5.5 鼠标输入
5.5.1 鼠标单击
5.5.2 捕获鼠标
5.5.3 鼠标拖放
5.6 多点触控输入
5.6.1 多点触控的输入层次
5.6.2 原始触控
5.6.3 操作
5.6.4 惯性
5.7 小结

第Ⅱ部分 进一步研究WPF
第6章 控件
6.1 控件类
6.1.1 背景画刷和前景画刷
6.1.2 字体
6.1.3 鼠标光标
6.2 内容控件
6.2.1 Content属性
6.2.2 对齐内容
6.2.3 WPF内容原则
6.2.4 标签
6.2.5 按钮
6.2.6 工具提示
6.3 特殊容器
6.3.1 ScroIIViewer
6.3.2 GroupBox
6.3.3 Tabltem
6.3.4 Expander
6.4 文本控件
6.4.1 多行文本
6.4.2 选择文本
6.4.3 拼写检查
6.4.4 PasswordBox
6.5 列表控件
6.5.1 ListBox
6.5.2 ComboBox
……

前言/序言

  .NET问世之初便引入了一些重要的新技术,包括编写Web应用程序的全新方法(ASP.NET)、连接数据库的全新方法(ADO.NET)、新的类型安全的语言(C#和VB.NET)以及托管的运行时(CLR)。在这些新技术中,其中一项重要技术是Windows窗体,它是用于构建Windows应用程序的类库。
  尽管Windows窗体是一个功能完备的工具包,但它绑定到旧式的核心Windows技术。最重要的是,Windows窗体依靠Windows API创建标准用户界面元素的可视化外观,如按钮、文本框和复选框等。所以这些要素在本质上是不可定制的。例如,如果希望创建时髦的光晕按钮,就需要创建自定义控件,并使用低级的绘图模型为按钮(各种不同的状态)绘制各个方面的细节。更糟的是,普通窗口被切割成不同的区域,每个控件完全拥有自己的区域。所以没有较好的绘制方法可将一个控件的内容(如按钮背后的辉光效果)延伸到其他控件所占的区域中。更不要指望实现动画效果,如旋转文本、闪烁按钮、收缩窗口以及实时预览等,因为对于这些效果必须手工绘制每个细节。
  WPF(Windows Presentation Foundation)通过引入一个使用完全不同技术的新模型改变了所有这一切。尽管WPF也提供了大家熟悉的标准控件,但它“自行”绘制每个文本、边框和背景填充。所以WPF的功能更强大,可以改变渲染屏幕上所有内容的方式。使用这些特性,可重新设置常见控件的样式(如按钮),并且通常不需要编写任何代码。同样,可使用变换对象旋转、拉伸、缩放以及扭曲用户界面中的所有内容,甚至可使用WPF动画系统对用户界面中的内容进行变换。并且因为WPF引擎将在窗口上渲染的内容作为单独操作的一部分,所以能处理任意多层相互重叠的控件,即使这些控件具有不规则的形状且是半透明的也同样如此。
  在WPF这些新特性的背后是基于DirectX的功能强大的基础结构,DirectX是一套硬件加速的图形API,通常用于开发最前沿的计算机游戏。这意味着可使用丰富的图形效果,而不会损失性能,而使用Windows窗体实现此类效果会严重影响程序运行的性能。实际上,甚至可使用更高级特性,例如对视频文件和3D内容的支持。使用这些特性以及优秀的设计工具,可创建出令人赏心悦目的用户界面和可视化效果,而使用Windows窗体技术是无法实现这些效果的。
  还有必要指出,可使用WPF的标准控件和简单的可视化外观来构建普通Windows应用程序。实际上,在WPF中,可以像在旧式Windows窗体模型中那样方便地使用通用控件。更值得一提的是,WPF增强了商业开发人员所需要的特性,包括大幅改进的数据绑定模型、一套用于打印以及管理打印队列的新类,以及用于显示大量格式化文本的文档特性。甚至提供了用于构建基于页面的应用程序的模型,这种应用程序可在Internet Explorer中流畅运行,并能从Web站点启动,所有这些操作都不会出现常见的安全警告和令人讨厌的安装提示。总之,WPF将以前Windows开发领域中的精华与当今的创新技术融为一体,得以构建现代化的富图形用户界面。
  关于本书
  本书深刻地介绍WPF技术,面向了解.NET平台、C#语言以及Visual Studio开发环境的专业开发人员。在学习本书前,不需要具备使用以前版本WPF的经验,而使用过WPF的开发人员可以通过阅读每章开头的“新增功能”来了解WPF新特性。
  本书全面描述WPF的所有主要特性,从XAML(用于定义WPF用户界面的标记语言)到3D绘图和动画。本书个别之处会编写涉及.NET Framework其他特性的代码,如用于查询数据库的ADO.NET类。本书中不讨论这些内容。但如果需要了解有关.NET(而非特定于WPF)的特性的更多信息,请参阅Apress出版的许多专门介绍.NET的书籍。
  内容概览
  本书共包括33章。如果刚开始学习WPF,将发现按照章节顺序阅读本书是最容易的方法,因为后续章节常用到前面章节中演示的技术。
  下面是本书每一章的主要内容:
  第1章:WPF概述 介绍WPF的体系结构,WPF的DirectX基础设施,以及新的能自动改变用户界面尺寸的设备无关度量系统。
  第2章:XAML 介绍用于定义用户界面的XAML标准。该章将讨论为什么创建XAML以及XAML的工作原理,并将用不同的编码方法创建基本的WPF窗口。
  第3章:布局 深入研究在WPF窗口中用于组织元素的布局面板。该章将分析不同布局策略,并将构建一些普通类型的窗口。
  第4章:依赖项属性 介绍WPF如何使用依赖项属性来支持重要特性,如数据绑定和动画。
  第5章:路由事件 介绍WPF如何使用事件路由在用户界面元素中发送冒泡路由事件或隧道路由事件,还介绍所有WPF元素都支持的一组基本鼠标、键盘以及多点触控事件。
  第6章:控件 分析所有Windows开发人员都十分熟悉的控件,如按钮、文本框和标签,还讨论它们在WPF中的区别。
  第7章:Application类 介绍WPF应用程序模型。在该章中您将看到如何创建单实例和基于文档的WPF应用程序。
  第8章:元素绑定 介绍WPF数据绑定。在该章中您将看到如何将任意类型的对象绑定到用户界面。
  第9章:命令 介绍WPF命令模型,使用WPF命令模型可将多个控件连接到同一个逻辑操作。
  第10章:资源 介绍如何使用资源在程序集中嵌入二进制文件,以及如何在整个用户界面中重用重要的对象。
  第11章:样式和行为 解释WPF样式系统,使用WPF样式可为一整组控件应用一套通用属性值。
  第12章:形状、画刷和变换 介绍WPF中的2D绘图模型。在该章中您将学习如何创建形状、使用变换改变元素,以及使用渐变画刷、图像画刷和平铺图像画刷绘制特殊效果。
  第13章:几何形状和图画 深入分析2D绘图。在该章中您将学习如何创建包含弧线和曲线的复杂路径,以及如何高效地使用复杂图形。
  第14章:效果和可视化对象 介绍低级图形编程。在该章中您将使用像素着色器应用Photoshop风格的效果,手动构建位图,并为了优化绘图性能而使用WPF的可视化层。
  第15章:动画基础 研究WPF的动画框架,通过WPF动画框架可使用简单的声明式标记将动态效果集成到应用程序中。
  第16章:高级动画 研究更高级的动画技术,如关键帧动画、基于路径的动画以及基于帧的动画。该章还将列举一个详细示例,展示如何使用代码创建和管理动态的动画。
  第17章:控件模板 介绍如何通过插入定制的模板来为任意WPF控件提供动态的新外观(以及新行为),您还将看到如何使用模板构建能够换肤的应用程序。
  第18章:自定义元素 研究如何扩展现有的WPF控件,以及如何创建自己的控件。在该章中您将看到几个示例,包括基于模板的颜色拾取器、可翻转的面板、自定义的布局容器,以及执行自定义绘图的装饰元素。
  第19章:数据绑定 展示如何从数据库获取信息,将获取的信息插入到自定义的数据对象中,并将这些数据对象绑定到WPF控件。您还将学习如何借助虚拟化技术提高大型数据绑定列表的性能,以及如何使用验证方法捕获编辑错误。
  第20章:格式化绑定的数据 展示将原始数据转换为包含图片、控件以及选择效果的富数据显示的一些技巧。
  第21章:数据视图 分析如何在数据绑定窗口中使用视图在数据项列表中导航,以及应用过滤、分类和分组。
  第22章:列表、树和网格 带您浏览WPF中的富数据控件,包括ListView、TreeView和DataGrid。
  第23章:窗口 分析WPF中窗口的工作原理。在该章中您还将学习如何创建不规则形状的窗口,以及如何使用Vista玻璃效果,您还将通过定制任务栏跳转列表、缩略图以及图标重叠实现大部分Windows 7特性。
  第24章:页面和导航 介绍如何使用WPF构建页面,以及保持跟踪导航历史。该章还将介绍如何构建驻留于浏览器中的WPF应用程序,这种应用程序可从Web站点启动。
  第25章:菜单、工具栏和功能区 分析面向命令的控件,如菜单和工具栏。在该章还将使用可免费下载的Ribbon控件尝试更富有现代气息的用户界面。
  第26章:声音和视频 介绍WPF媒体支持。在该章中您将看到如何控制声音和视频的播放,以及如何合成动画和生动鲜活的效果。
  第27章:3D绘图 研究WPF中对绘制3D图形的支持。在该章将学习如何创建和变换3D对象,以及如何为3D对象应用动画效果,甚至还会看到如何在3D表面上放置可交互的2D控件。
  第28章:文档 介绍WPF的富文档支持。在该章中您将学习如何使用流文档以尽可能便于阅读的方式呈现大量文本,并将学习如何用固定文档显示准备打印的页面,甚至还将学习如何使用RichTextBox控件提供文档编辑功能。
  第29章:打印 演示WPF的打印模型,可通过打印模型在打印文档中绘制文本和图形。在该章中您还将学习如何管理页面设置和打印队列。
  第30章:与Windows窗体进行交互 分析如何在同一个应用程序—— 甚至在同一个窗口中,结合使用WPF和Windows窗体内容。
  第31章:多线程 介绍如何创建具有良好响应能力,在后台执行耗时任务的WPF应用程序。
  第32章:插件模型 展示如何创建可扩展的、能动态发现和加载独立组件的应用程序。
  第33章:ClickOnce部署 展示如何使用ClickOnce安装模型部署WPF应用程序。
  使用本书的前提条件
  为运行WPF 4.5应用程序,计算机必须安装Windows 7、Windows 8或带有Service Pack 2的 Windows Vista,还需要.NET Framework 4.5。为创建WPF 4.5应用程序(并打开本书中提供的示例项目),需要安装Visual Studio 2012,Visual Studio 2012中包含了.NET Framework 4.5。
  还有一种选择。不使用任何版本的Visual Studio,可使用Expression Blend(一种面向图形的设计工具)来构建和测试WPF应用程序。总体而言,Expression Blend是面向图形设计人员的工具,他们使用该工具创建绚丽夺目的内容;而对于编写大量代码的编程人员来说,Visual Studio则是理想工具。本书假定使用的是Visual Studio。如果准备使用Expression Blend,务必选用明确支持WPF的版本(与某些Visual Studio版本绑定在一起的版本仅用于Metro开发,不支持WPF)。到撰写本书时为止,支持WPF的Expression Blend版本是称为Blend + Sketchflow Preview for Visual Studio 2012的预览版本,网址是http://tinyurl.com/cgar5lz。
  代码示例和URL
  查看Apress网站或www.prosetech.com以下载最新的示例代码是个好主意。测试在本书中介绍的大部分更复杂的示例需要用到这些代码示例,因为在本书示例中那些较次要的细节通常被忽略了。本书关注最重要的部分,以免为阐明概念而无谓地占用过多篇幅。
  为下载本书的源代码,可访问Web站点http://www.prosetech.com查找本书的页面,也可从http://www.tupwk.com.cn/downpage下载本书的源代码。您将发现在本书中提及的链接的列表,从而不需要键入任何内容就可以找到重要工具和例子。
  反馈
  本书力争成为WPF编程爱好者的最佳辅导和参考资料。为达到该目标,您的评论和建议对我们来说是非常有帮助的。您可将本书的缺点、优点及其他反馈信息直接发送到邮箱wkservice@vip.163.com,我们将不胜感激。

编辑推荐

  本书特色
  理解WPF编程的基础知识:从XAML到控件,乃至数据流
  开发实用的应用程序,带您实际了解导航、本地化和开发
  探讨WPF提供的高级用户界面控件
  分析如何在WPF中管理文档,涵盖了文本布局、打印和文档打包等所有技术
  使用图形和多媒体来增强应用程序

内容简介

  《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》全面讲解WPF的实际工作原理,是一本WPF著作。在紧贴实用示例这一思想的引导下,列出实用提示,引导以专业的方式使用WPF。《WPF编程宝典:使用C# 2012和.NET 4.5(第4版)》开篇介绍WPF基本概念以便为您奠定坚实的基础,并将现有C#技能作为引用框架,然后讨论高级概念,结合实际演示它们的用法,并重点强调了可由此节省的时间和人力成本。

作者简介

  Matthew MacDonald是一位作家、教育家,曾三次荣膺微软MVP。他迄今已经撰写了十多本有关.NET编程的书籍,包括ProSilverlight5inC#(由Apress于2012年出版)和BeginningASPNET4.5inC#(由Apress于2012年出版)。他还曾撰写Your Brain: The Missing Manual(由O'Reilly Media于2008年出版)一书,该书讲述如何大限度地激发大脑潜能,出版后受到广大读者的热烈欢迎。Matthew目前与妻子和两个女儿居住在多伦多。

内页插图

目录

第Ⅰ部分基础知识
第1章 WPF概述
1.1 Windows图形演化
1.1.1 DirectX:新的图形引擎
1.1.2 硬件加速与WPF
1.2 WPF:高级API
1.3 分辨率无关性
1.3.1 WPF单位
1.3.2 系统DPI
1.3.3 位图和矢量图形
1.4 WPF体系结构
1.5 WPF 4.5
1.5.1 WPF工具包
1.5.2 Visual Studi0 2012
1.6小结

第2章 XAML
2.1 理解XAML
2.1.1 WPF之前的图形用户界面
2.1.2 XAML变体
2.1.3 XAML编译
2.2 XAML基础
2.2.1 XAML名称空间
2.2.2 代码隐藏类
2.3 XAML中的属性和事件
2.3.1 简单属性与类型转换器
2.3.2 复杂属性
2.3.3 标记扩展
2.3.4 附加属性
2.3.5 嵌套元素
2.3.6 特殊字符与空白
2.3.7 事件
2.3.8 完整的Eight Ball Answer示例
2.4 使用其他名称空间中的类型
2.5 加载和编译XAML
2.5.1 炅使用代码
2.5.2 使用代码和未经编译的XAML
2.5.3 使用代码和编译过的XAML
2.5.4 只使用XAML
2.6 小结

第3章 布局
3.1 理解WPF中的布局
3.1.1 WPF布局原则
3.1.2 布局过程
3.1.3 布局容器
3.2 使用StackPanel面板进行简单布局
3.2.1 布局属性
3.2.2 对齐方式
3.2.3 边距
3.2.4 最小尺寸、最大尺寸以及显式地设置尺寸
3.2.5 Border控件
3.3 WrapPanel和DockPanel面板
3.3.1 WrapPanel面板
3.3.2 DockPanel面板
3.3.3 嵌套布局容器
3.4 Grid面板
3.4.1 调整行和列
3.4.2 布局舍入
3.4.3 跨越行和列
3.4.4 分割窗口
3.4.5 共享尺寸组
3.4.6 UniformGrid面板
3.5 使用Canvas面板进行基于坐标的布局
3.5.1 Z顺序
3.5.2 InkCanvas元素
3.6 布局示例
3.6.1 列设置
3.6.2 动态内容
3.6.3 组合式用户界面
3.7 小结

第4章 依赖项属性
4.1 理解依赖项属性
4.1.1 定义依赖项属性
4.1.2 注册依赖项属性
4.1.3 添加属性包装器
4.1.4 WPF使用依赖项属性的方式
4.1.5 共享的依赖项属性
4.1.6 附加的依赖项属性
4.2 属性验证
4.2.1 验证回调
4.2.2 强制回调
4.3 小结

第5章 路由事件
5.1 理解路由事件
5.1.1 定义、注册和封装路由事件
5.1.2 共享路由事件
5.1.3 引发路由事件
5.1.4 处理路由事件
5.2 事件路由
5.2.1 RoutedEventArgs类
5.2.2 冒泡路由事件
5.2.3 处理挂起的事件
5.2.4 附加事件
5.2.5 隧道路白事件
5.3 WPF事件
5.3.1 生命周期事件
5.3.2 输入事件
5.4 键盘输入
5.4.1 处理按键事件
5.4.2 焦点
5.4.3 获取键盘状态
5.5 鼠标输入
5.5.1 鼠标单击
5.5.2 捕获鼠标
5.5.3 鼠标拖放
5.6 多点触控输入
5.6.1 多点触控的输入层次
5.6.2 原始触控
5.6.3 操作
5.6.4 惯性
5.7 小结

第Ⅱ部分 进一步研究WPF
第6章 控件
6.1 控件类
6.1.1 背景画刷和前景画刷
6.1.2 字体
6.1.3 鼠标光标
6.2 内容控件
6.2.1 Content属性
6.2.2 对齐内容
6.2.3 WPF内容原则
6.2.4 标签
6.2.5 按钮
6.2.6 工具提示
6.3 特殊容器
6.3.1 ScroIIViewer
6.3.2 GroupBox
6.3.3 Tabltem
6.3.4 Expander
6.4 文本控件
6.4.1 多行文本
6.4.2 选择文本
6.4.3 拼写检查
6.4.4 PasswordBox
6.5 列表控件
6.5.1 ListBox
6.5.2 ComboBox
……

前言/序言

  .NET问世之初便引入了一些重要的新技术,包括编写Web应用程序的全新方法(ASP.NET)、连接数据库的全新方法(ADO.NET)、新的类型安全的语言(C#和VB.NET)以及托管的运行时(CLR)。在这些新技术中,其中一项重要技术是Windows窗体,它是用于构建Windows应用程序的类库。
  尽管Windows窗体是一个功能完备的工具包,但它绑定到旧式的核心Windows技术。最重要的是,Windows窗体依靠Windows API创建标准用户界面元素的可视化外观,如按钮、文本框和复选框等。所以这些要素在本质上是不可定制的。例如,如果希望创建时髦的光晕按钮,就需要创建自定义控件,并使用低级的绘图模型为按钮(各种不同的状态)绘制各个方面的细节。更糟的是,普通窗口被切割成不同的区域,每个控件完全拥有自己的区域。所以没有较好的绘制方法可将一个控件的内容(如按钮背后的辉光效果)延伸到其他控件所占的区域中。更不要指望实现动画效果,如旋转文本、闪烁按钮、收缩窗口以及实时预览等,因为对于这些效果必须手工绘制每个细节。
  WPF(Windows Presentation Foundation)通过引入一个使用完全不同技术的新模型改变了所有这一切。尽管WPF也提供了大家熟悉的标准控件,但它“自行”绘制每个文本、边框和背景填充。所以WPF的功能更强大,可以改变渲染屏幕上所有内容的方式。使用这些特性,可重新设置常见控件的样式(如按钮),并且通常不需要编写任何代码。同样,可使用变换对象旋转、拉伸、缩放以及扭曲用户界面中的所有内容,甚至可使用WPF动画系统对用户界面中的内容进行变换。并且因为WPF引擎将在窗口上渲染的内容作为单独操作的一部分,所以能处理任意多层相互重叠的控件,即使这些控件具有不规则的形状且是半透明的也同样如此。
  在WPF这些新特性的背后是基于DirectX的功能强大的基础结构,DirectX是一套硬件加速的图形API,通常用于开发最前沿的计算机游戏。这意味着可使用丰富的图形效果,而不会损失性能,而使用Windows窗体实现此类效果会严重影响程序运行的性能。实际上,甚至可使用更高级特性,例如对视频文件和3D内容的支持。使用这些特性以及优秀的设计工具,可创建出令人赏心悦目的用户界面和可视化效果,而使用Windows窗体技术是无法实现这些效果的。
  还有必要指出,可使用WPF的标准控件和简单的可视化外观来构建普通Windows应用程序。实际上,在WPF中,可以像在旧式Windows窗体模型中那样方便地使用通用控件。更值得一提的是,WPF增强了商业开发人员所需要的特性,包括大幅改进的数据绑定模型、一套用于打印以及管理打印队列的新类,以及用于显示大量格式化文本的文档特性。甚至提供了用于构建基于页面的应用程序的模型,这种应用程序可在Internet Explorer中流畅运行,并能从Web站点启动,所有这些操作都不会出现常见的安全警告和令人讨厌的安装提示。总之,WPF将以前Windows开发领域中的精华与当今的创新技术融为一体,得以构建现代化的富图形用户界面。
  关于本书
  本书深刻地介绍WPF技术,面向了解.NET平台、C#语言以及Visual Studio开发环境的专业开发人员。在学习本书前,不需要具备使用以前版本WPF的经验,而使用过WPF的开发人员可以通过阅读每章开头的“新增功能”来了解WPF新特性。
  本书全面描述WPF的所有主要特性,从XAML(用于定义WPF用户界面的标记语言)到3D绘图和动画。本书个别之处会编写涉及.NET Framework其他特性的代码,如用于查询数据库的ADO.NET类。本书中不讨论这些内容。但如果需要了解有关.NET(而非特定于WPF)的特性的更多信息,请参阅Apress出版的许多专门介绍.NET的书籍。
  内容概览
  本书共包括33章。如果刚开始学习WPF,将发现按照章节顺序阅读本书是最容易的方法,因为后续章节常用到前面章节中演示的技术。
  下面是本书每一章的主要内容:
  第1章:WPF概述 介绍WPF的体系结构,WPF的DirectX基础设施,以及新的能自动改变用户界面尺寸的设备无关度量系统。
  第2章:XAML 介绍用于定义用户界面的XAML标准。该章将讨论为什么创建XAML以及XAML的工作原理,并将用不同的编码方法创建基本的WPF窗口。
  第3章:布局 深入研究在WPF窗口中用于组织元素的布局面板。该章将分析不同布局策略,并将构建一些普通类型的窗口。
  第4章:依赖项属性 介绍WPF如何使用依赖项属性来支持重要特性,如数据绑定和动画。
  第5章:路由事件 介绍WPF如何使用事件路由在用户界面元素中发送冒泡路由事件或隧道路由事件,还介绍所有WPF元素都支持的一组基本鼠标、键盘以及多点触控事件。
  第6章:控件 分析所有Windows开发人员都十分熟悉的控件,如按钮、文本框和标签,还讨论它们在WPF中的区别。
  第7章:Application类 介绍WPF应用程序模型。在该章中您将看到如何创建单实例和基于文档的WPF应用程序。
  第8章:元素绑定 介绍WPF数据绑定。在该章中您将看到如何将任意类型的对象绑定到用户界面。
  第9章:命令 介绍WPF命令模型,使用WPF命令模型可将多个控件连接到同一个逻辑操作。
  第10章:资源 介绍如何使用资源在程序集中嵌入二进制文件,以及如何在整个用户界面中重用重要的对象。
  第11章:样式和行为 解释WPF样式系统,使用WPF样式可为一整组控件应用一套通用属性值。
  第12章:形状、画刷和变换 介绍WPF中的2D绘图模型。在该章中您将学习如何创建形状、使用变换改变元素,以及使用渐变画刷、图像画刷和平铺图像画刷绘制特殊效果。
  第13章:几何形状和图画 深入分析2D绘图。在该章中您将学习如何创建包含弧线和曲线的复杂路径,以及如何高效地使用复杂图形。
  第14章:效果和可视化对象 介绍低级图形编程。在该章中您将使用像素着色器应用Photoshop风格的效果,手动构建位图,并为了优化绘图性能而使用WPF的可视化层。
  第15章:动画基础 研究WPF的动画框架,通过WPF动画框架可使用简单的声明式标记将动态效果集成到应用程序中。
  第16章:高级动画 研究更高级的动画技术,如关键帧动画、基于路径的动画以及基于帧的动画。该章还将列举一个详细示例,展示如何使用代码创建和管理动态的动画。
  第17章:控件模板 介绍如何通过插入定制的模板来为任意WPF控件提供动态的新外观(以及新行为),您还将看到如何使用模板构建能够换肤的应用程序。
  第18章:自定义元素 研究如何扩展现有的WPF控件,以及如何创建自己的控件。在该章中您将看到几个示例,包括基于模板的颜色拾取器、可翻转的面板、自定义的布局容器,以及执行自定义绘图的装饰元素。
  第19章:数据绑定 展示如何从数据库获取信息,将获取的信息插入到自定义的数据对象中,并将这些数据对象绑定到WPF控件。您还将学习如何借助虚拟化技术提高大型数据绑定列表的性能,以及如何使用验证方法捕获编辑错误。
  第20章:格式化绑定的数据 展示将原始数据转换为包含图片、控件以及选择效果的富数据显示的一些技巧。
  第21章:数据视图 分析如何在数据绑定窗口中使用视图在数据项列表中导航,以及应用过滤、分类和分组。
  第22章:列表、树和网格 带您浏览WPF中的富数据控件,包括ListView、TreeView和DataGrid。
  第23章:窗口 分析WPF中窗口的工作原理。在该章中您还将学习如何创建不规则形状的窗口,以及如何使用Vista玻璃效果,您还将通过定制任务栏跳转列表、缩略图以及图标重叠实现大部分Windows 7特性。
  第24章:页面和导航 介绍如何使用WPF构建页面,以及保持跟踪导航历史。该章还将介绍如何构建驻留于浏览器中的WPF应用程序,这种应用程序可从Web站点启动。
  第25章:菜单、工具栏和功能区 分析面向命令的控件,如菜单和工具栏。在该章还将使用可免费下载的Ribbon控件尝试更富有现代气息的用户界面。
  第26章:声音和视频 介绍WPF媒体支持。在该章中您将看到如何控制声音和视频的播放,以及如何合成动画和生动鲜活的效果。
  第27章:3D绘图 研究WPF中对绘制3D图形的支持。在该章将学习如何创建和变换3D对象,以及如何为3D对象应用动画效果,甚至还会看到如何在3D表面上放置可交互的2D控件。
  第28章:文档 介绍WPF的富文档支持。在该章中您将学习如何使用流文档以尽可能便于阅读的方式呈现大量文本,并将学习如何用固定文档显示准备打印的页面,甚至还将学习如何使用RichTextBox控件提供文档编辑功能。
  第29章:打印 演示WPF的打印模型,可通过打印模型在打印文档中绘制文本和图形。在该章中您还将学习如何管理页面设置和打印队列。
  第30章:与Windows窗体进行交互 分析如何在同一个应用程序—— 甚至在同一个窗口中,结合使用WPF和Windows窗体内容。
  第31章:多线程 介绍如何创建具有良好响应能力,在后台执行耗时任务的WPF应用程序。
  第32章:插件模型 展示如何创建可扩展的、能动态发现和加载独立组件的应用程序。
  第33章:ClickOnce部署 展示如何使用ClickOnce安装模型部署WPF应用程序。
  使用本书的前提条件
  为运行WPF 4.5应用程序,计算机必须安装Windows 7、Windows 8或带有Service Pack 2的 Windows Vista,还需要.NET Framework 4.5。为创建WPF 4.5应用程序(并打开本书中提供的示例项目),需要安装Visual Studio 2012,Visual Studio 2012中包含了.NET Framework 4.5。
  还有一种选择。不使用任何版本的Visual Studio,可使用Expression Blend(一种面向图形的设计工具)来构建和测试WPF应用程序。总体而言,Expression Blend是面向图形设计人员的工具,他们使用该工具创建绚丽夺目的内容;而对于编写大量代码的编程人员来说,Visual Studio则是理想工具。本书假定使用的是Visual Studio。如果准备使用Expression Blend,务必选用明确支持WPF的版本(与某些Visual Studio版本绑定在一起的版本仅用于Metro开发,不支持WPF)。到撰写本书时为止,支持WPF的Expression Blend版本是称为Blend + Sketchflow Preview for Visual Studio 2012的预览版本,网址是http://tinyurl.com/cgar5lz。
  代码示例和URL
  查看Apress网站或www.prosetech.com以下载最新的示例代码是个好主意。测试在本书中介绍的大部分更复杂的示例需要用到这些代码示例,因为在本书示例中那些较次要的细节通常被忽略了。本书关注最重要的部分,以免为阐明概念而无谓地占用过多篇幅。
  为下载本书的源代码,可访问Web站点http://www.prosetech.com查找本书的页面,也可从http://www.tupwk.com.cn/downpage下载本书的源代码。您将发现在本书中提及的链接的列表,从而不需要键入任何内容就可以找到重要工具和例子。
  反馈
  本书力争成为WPF编程爱好者的最佳辅导和参考资料。为达到该目标,您的评论和建议对我们来说是非常有帮助的。您可将本书的缺点、优点及其他反馈信息直接发送到邮箱wkservice@vip.163.com,我们将不胜感激。