基本信息·出版社:机械工业出版社 ·页码:469 页 ·出版日期:2009年01月 ·ISBN:7111257855/9787111257851 ·条形码:9787111257851 ·版本:第1版 · ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
WPF全视角分析 |
|
|
|
WPF全视角分析 |
|
基本信息·出版社:机械工业出版社
·页码:469 页
·出版日期:2009年01月
·ISBN:7111257855/9787111257851
·条形码:9787111257851
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:信息科学与技术丛书程序设计系列
·图书品牌:华章图书
内容简介 《WPF全视角分析》按照WPF的各种功能由浅入深地进行讲解。不同于众多外文书籍的是:在《WPF全视角分析》的阅读过程中,读者将看到WPF如何组织其中包含的各个类,类层次结构中各个类所提供的功能以及各种功能的实际内部实现等多方面的内容。阅读《WPF全视角分析》后,读者能够真正掌握WPF各种功能的使用方法。
希望读者能够通过《WPF全视角分析》的学习清晰地认识到WPF所提供的各种功能之间的联系,并在此基础上熟练、灵活地掌握这些功能的用法。
书中的代码可在http://www.cmpbook.com下载。
编辑推荐 软件界面的基本组成:控件
控制控件的位置:布局与变换
数据与界面的联动:数据绑定
外观控制:模板、样式、皮肤、主题
定制外观:2D图像支持
属性驱动的基础:属性系统
《WPF全视角分析》是一本讲解WPF(Windows Presentation Foundation)的使用、架构,实现逻辑的书。
目录 前言
第1章 初识WPF
1.1 GDI与WPF
1.2 WPF架构
1.3 WPF的特点
第2章 界面声明脚本——XAML
2.1 环境设置
2.2 通过VisualStudio创建工程
2.3 xML简介
2.4 xAML简介
2.4.1 XAML是WPF中的声明式语言
2.4.2 XAML对名字空间的使用
2.4.3 XAML中的各个关键字
2.4.4.XAML对属性的设置
2.4.5 关联属性和附加属性简介
2.4.6.XAML扩展标记
第3章 软件界面的基本组成——控件
3.1 控件类的派生结构
3.1.1 基类——Obiect类
3.1.2 界面元素的单线程约束——DispatcherObject类
3.1.3 参与属性系统——DependencyObject类
3.1.4 界面外观组成——Visual类
3.1.5 界面元素的基本实现——UIElement类
3.1.6 界面元素的具体实现——FrameworkElement类
3.1.7 控件类基类——Control类
3.2 WPF的内建控件
3.2.1 控件组合基础——单条目控件
3.2.2 项目集合的显示——多条目控件
3.2.3 小空间显示大元素——范围控件
3.2.4 遗漏了什么重要控件吗——其他控件
第4章 控制控件的位置——布局与变换
4.1 位置控制属性
4.1.1 控件该有多大——尺寸控制属性
4.1.2 应该占据什么位置呢——对齐控制属性
4.1.3 让界面元素变形——使用变换
4.1.4 设置冲突怎么办——布局属性优先级
4.2 使用面板控制布局
4.2.1 经典布局方式——Canvas
4.2.2 单向排列面板——StackPanel
4.2.3 逐行显示面板——WrapPanel
4.2.4 类网页布局面板——DockPanel
4.2.5 这种面板就是添格子——Grid
4.2.6 选择最合适的布局——五种面板的比较
4.2.7 还有别的么-其他布局方式
4.2.8 它们也能控制布局——具有布局功能的类
4.2.9 不能完全显示怎么办——溢出处理
第5章 用规律替代个体——使用资源
5.1 二进制资源
5.1.1 二进制资源的添加
5.1.2 二进制资源的访问
5.1.3 全球化和本地化操作
5.2 逻辑资源
5.2.1 在WPF工程里添加资源
5.2.2 访问资源
5.2.3 使用动态资源
第6章 数据与界面的联动——数据绑定
6.1 数据绑定简介
6.1.1 数据绑定的代表——Binding类
6.1.2 在后台操作绑定——BindingOperation类
6.2 在XAML中使用数据绑定
6.2.1 最简单的情况——绑定关联属性
6.2.2 让绑定的使用更普遍——绑定普通属性
6.2.3 并不常见的情况——绑定整个元素
6.2.4 处理大量数据——绑定数据集合
6.2.5 更灵活的数据记录方法——DataProviders
6.3 高级话题
6.3.1 到底是谁更新谁——绑定方式
6.3.2 数据更新的时机——数据更新规则
6.3.3 绑定中的复杂逻辑——绑定多个数据源
第7章 外观控制——模板、样式、皮肤、主题
7.1 基础知识
7.1.1 界面声明中的名字空间——元素名称作用范围
7.1.2 简单逻辑的表示——触发器
7.2 模板
7.2.1 模板的抽象——FrameworkTemplate类
7.2.2 数据外观定义——数据模板
7.2.3 控件外观定义——控件模板
7.2.4 多条目控件的特殊模板——ItemsPanelTemplate
7.3 样式
7.3.1 从继承结构的分析开始——样式的简单使用
7.3.2 样式也可以派生——Style类的继承与覆盖
7.3.3 样式的自动使用——设置和获得控件的默认样式
7.3.4 样式、模板和触发器之间的联系
7.4 皮肤
7.5 主题
第8章 定制外观——2D图像支持
8.1 WPF中的图像容器——mage类
8.2 轻量级图像元素——Drawing类
8.2.1 图形类基类——GeometryDrawing
8.2.2 简单的Geometry类派生类
8.2.3 非常用图形的表示——PathGeometry类
8.2.4.多个图形的合并——GeometryGroup
8.2.5 图形的计算——CombinedGeometry
8.2.6 简化图形表示——StreamGeometry
8.3 操作底层实现进行绘制——Visual类
8.4 高级图像类——Shspe
8.4.1 线的表示——Line
8.4.2 折线的表示——Polyline
8.4.3 多边形的表示——Polygon
8.4.4 矩形的表示——Rectangle
8.4.5 椭圆形的表示——Ellipse
8.4.6 通用图形表示类——Path
8.5 2D图形相关知识
8.5.1 颜色的表示——Color
8.5.2 透明度控制
8.5.3 点击测试
8.5.4 画刷的表示——Brush
8.5.5 画笔的表示——Pen
8.5.6 2D特效——BitmapEffect
第9章 创建真实的世界——WPF的3D支持
9.1 3D基础知识
9.1.1 位置的表示——坐标系
9.1.2 相对位置的表示-模型坐标
9.1.3 观察者的表示——相机
9.1.4 只显示能看到的——裁剪
9.2 使用WPF创建最简单的3D程序
9.2.1 3D程序示例
9.2.2 程序中的观察者——相机类
9.2.3 确定显示效果——材质类
9.2.4 虚拟世界中的光——光源类
9.3 3D变换
9.3.1 位移变换——TranslateTrailsform3D
9.3.2 缩放变换——ScaleTransform3D
9.3.3 旋转变换——RotateTrarlsform3D
9.3.4 组合变换——Transform3DGroup
9.4 3D物体表示
9.5 3D物体的绘制
第10章 软件界面中的多媒体——动画和音乐
10.1 WPF中的动画
10.1.1 基础知识
10.1.2 在XAML中使用动画类
10.1.3 动画类的使用及示例
10.2 WPF中的音频和视频
10.2.1 SoundPlayer类
10.2.2 MediaPlayer类
第11章 文字信息的展示——WPF的文本功能
11.1 流文本显示类——FlowDocument
11.1.1 FlowDocument类的继承结构
11.1.2 流文本可以使用的各个元素
11.1.3 流文本的显示
11.2 WPF打印功能简介
11.2.1 打印系统简介
11.2.2 使用WPF打印功能
11.2.3 打印机管理
第12章 完善WPF项目——应用相关
12.1 WPF项目的组成
12.1.1 WPF项目的创建
12.1.2 WPF工程的种类以及项目文件组成
12.1.3 Application类
12.1.4 Environment类
12.1.5 WindowsFormsApplicationBase类
12.1.6 ApplicationSettingsBase类
12.1.7 Window类
12.1.8 NavigationWindow类及其相关类
12.2 WPF中的对话框
12.2.1 通用对话框
12.2.2 消息框
12.2.3 TaskDialog
第13章 思考——深入了解WPF
13.1 WPF的架构
13.1.1 界面元素系统
13.1.2 视觉系统
13.1.3 文字系统
13.1.4 输入系统
13.1.5 属性系统
13.1.6 消息交换层
13.1.7 功能实现部分
13.2 WPF思想
13.2.1 XAML
13.2.2 变换
13.2.3 布局
13.2.4 数据绑定
13.2.5 模板及样式
13.2.6 WPF中的图像
13.2.7 动画
13.3 WPF中的性能问题
13.3.1 从软件整体考虑性能
13.3.2 使用硬件加速
13.3.3 合理使用图形图像
13.3.4 动画中的性能考虑
13.3.5 使用最合适的布局
13.3.6 绑定中的性能问题
13.3.7 合理使用资源
13.3.8 类实现相关
第14章 属性驱动的基础——属性系统
14.1 关联属性实现
14.1.1 CLR属性接口
14.1.2 关联属性
14.1.3 关联属性的实现
14.2 元数据
14.2.1 元数据简介
14.2.2 默认值与属性继承
14.2.3 属性更改及刷新的回调函数
14.2.4 FrameworkPropertyMetadata
14.2.5 对元数据进行更改
14.3 附加属性
14.4 只读属性
14.5 集合类型的关联属性实现
14.6 属性优先级
第15章 WPF中的交互手段——了解WPF事件内部机制
15.1 WPF中的线程模型
15.1.1 消息循环和DispatcherObject
15.1.2 Dispatcher
15.2 WPF中的事件
15.2.1 路由事件
15.2.2 附加事件
15.2.3 自定义事件的实现
15.2.4 RoutedEventArgs
15.3 WPF对命令的支持
15.3.1 WPF中的内建命令
15.3.2 ICommand接口及其实现类
15.3.3 ICommandSource接口
15.4 与Win32机制交互
15.4.1 WPF与Win32程序的交互方法
15.4.2 在WPF中使用其他类库控件
15.4.3 在Win32中使用WPF控件
15.4.4 完成交互功能的类与接口
第16章 扩展WPF功能——自定义WPF类
16.1 功能类派生
16.1.1 更改通知的实现——INotifyPropertyChanged接口
16.1.2 自定义转换器——IValueConverter接口及TypeConverter类
16.1.3 数据模板选择逻辑——DataTemplateSelector类
16.1.4 可复用界面元素基类——Freezable类
16.1.5 对界面元素进行修饰——从Adomer类派生
16.2 自定义界面元素
16.2.1 自定义控件
16.2.2 自定义面板
16.2.3 自定义动画类
……
序言 我在2006年10月去微软亚洲工程院上海分院面试的时候,考官问我曾经参与过的最喜欢的项目是什么。由于当时参与的项目涉及公司机密,因此我说出当时正在开发的一个个人项目。在该项目中,我试图用XML语言加关键词分析的方法描述软件界面,同时以脚本语言为基础构建各种控件的触发逻辑,并用自己编写的分析引擎对软件界面进行分析和构建。考官听了我的介绍,只是向我笑着推荐了WPF(Windows Presentation Foundation)。当我接触WPF后,我立即放弃了原项目,投入到对WPF的研究中。
在学习过程中,我一直在阅读与该技术有关的外文书籍。但是由于外文书籍更强调应用而非逻辑上的联系,因此我在对该类库的研究过程中常常有一种无法理清脉络的感觉。这种感觉困扰我很久。有感于市场上这方面书籍的匮乏,我在2007年6月决定编写一本适合国人阅读的书籍。
经过一年的编写,六次修订稿件,我终于完成了对该书的编写。
本书的组织
本书是按照由浅人深的方式组织知识的讲解和配套代码的。前十二章致力于对WPF的使用进行讲解,并在讲解过程中适当插入对实现本质的说明。后四章叙述对该技术的理解方法,主要将WPF的各部分功能进行串联,使读者在阅读了这四章后对该技术有深入的了解。
本书适合的读者
本书在讲解WPF各个功能时,致力于对其内部实现逻辑以及功能之间的联系的挖掘。因此无论是刚接触该技术的新人还是较熟悉该技术的人,阅读本书都将对其理解和应用WPF有所帮助。
代码样例
本书的各个章节基本都提供了帮助理解的代码样例,这些样例用“代码AppX.X”标明。为了便于刚接触这门技术的读者学习,在前面几章中,本书尽可能将更多的样例添加到与书相对应的代码中,以方便读者调试和理解。
本书的源代码一共提供了两个版本,分别对应支持WPF的两种Visual Studio版本:Visual Studio 2005和Visual Studio 2008。读者可在http://www.cmpbook.com下载代码。
文摘 第1章 初识WPF
在介绍WPF之前,请读者看一款用WPF创建的软件Roxio Central的界面。其效果如图1-1所示。
Roxio Central是微软出品的。它是一款可以在Windows Vista操作系统中运行的媒体刻录程序。与以往的基于GDl进行界面开发的程序不同,该软件的界面是通过WPF(Windows Presentation Foundation)系统进行绘制的。
WPF是为.NET框架设计的全新的软件界面显示系统。为了能让软件开发人员方便地使用该系统所提供的各项功能,微软又提供了一个WPF编程类库,并希望借此将WPF定义成Visia操作系统程序的标准界面编程方式。在通常情况下,本书中所提到的WPF指的都是该类库。
WPF的设计实际上借鉴了许多界面编程技术中的优秀设计理念,如网页技术中对布局和动画的支持。并且它的实现也使用了当前的多种热点技术,如利用GPU对软件界面渲染进行加速。而且在编程过程中,该类库可以将用户界面与业务逻辑完美地分离。可以说,无论对于软件的最终用户、软件界面设计人员还是软件架构的设计者,WPF都将提供绝佳的用户体验。
插图: