基本信息·出版社:人民邮电出版社 ·页码:330 页 ·出版日期:2009年06月 ·ISBN:7115206627/9787115206626 ·条形码:9787115206626 ·版本:第1版 · ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
 |
WPF核心技术 |
 |
|
 |
WPF核心技术 |
 |

基本信息·出版社:人民邮电出版社
·页码:330 页
·出版日期:2009年06月
·ISBN:7115206627/9787115206626
·条形码:9787115206626
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
内容简介 《WPF核心技术》围绕WPF中的一些重要概念进行详细的讲解,涉及WPF的各个方面,包括:WPF的设计原则、应用程序的结构、内置控件、界面的布局、可视化效果、资源与数据、动作的操作、样式的处理和基础服务。《WPF核心技术》还通过丰富的示例代码介绍了一些非常有用的WPF开发技巧。《WPF核心技术》适合各类使用WPF开发应用程序界面的技术人员阅读,不管是构架师、开发人员还是设计人员,都可以从中获益。
作者简介 Chris AnderSOn是微软公司Connected Systems部门的架构师,专门为下一代应用程序和服务设计并构架.NET技术。在微软公司的10年中,他的工作涉及从Visual Basic 6.0和Visual。J++6.0到.NET Framework 1.0和1.1等技术。2002年,作为WPF的架构师,他加入了WindOWS Client团队。他在PDC、TechEd、WinDev和DevCon等很多会议上做过演讲。
媒体推荐 “Microsofi.NET开发系列丛书对于使用.NET框架和WebJ艮务的开发人员来说,是非常宝贵的资源,它涵盖了从参考资料到实践指导的所有基础知识。这个系列的书籍对于打算编写健壮的托管代码的开发人员而言,是非常重要的阅读材料。”
——John Montgomery 微软公司Developer Platform and Evangelism部门总监
“Microsoft.NET开发系列丛书得到了微软公司.NET框架及其语言的权威专家的大力帮助。为完成这个系列丛书而组建的专家库包括了业界最具洞察力的作者、微软公司的软件架构师以及开发者。”
——DonBox 微软公司架构师
编辑推荐 《WPF核心技术》是的权威参考书,主要介绍了开发人员
目录 第1章 导言 1
1.1 WPF——全新的GUI 1
1.1.1 Charles Petzold时代的User32 1
1.1.2 HTML(即所谓的Web) 5
1.2 初看XAML编程模型 8
1.3 WPF概览 12
1.3.1 准备和运行 13
1.3.2 转到标记 14
1.3.3 基础 16
1.3.4 处理数据 20
1.3.5 一体化的力量 22
1.3.6 设置一些样式 28
1.4 创建应用程序的工具 31
1.5 小结 31
第2章 应用程序 32
2.1 应用程序原则 32
2.1.1 可伸缩的应用程序 32
2.1.2 Web风格 35
2.1.3 桌面风格 37
2.2 应用程序 38
2.2.1 定义 39
2.2.2 生存期 41
2.2.3 错误处理 42
2.2.4 管理状态 44
2.3 资源和配置 45
2.3.1 配置状态 45
2.3.2 内容状态 48
2.3.3 文档状态 53
2.4 窗口 53
2.4.1 显示窗口 55
2.4.2 大小和位置 58
2.4.3 窗口和应用程序 59
2.5 用户控件 60
2.6 导航和页面 62
2.6.1 在页面之间传递状态 66
2.6.2 控制导航 70
2.6.3 控制日志 72
2.6.4 功能性导航和页面功能 73
2.7 在浏览器中托管应用程序 78
2.7.1 HelloBrowser 79
2.7.2 表面之下 82
2.7.3 松散标记 84
2.8 小结 84
第3章 控件 86
3.1 控件原则 86
3.1.1 内容模型 88
3.1.2 模板 93
3.2 控件库 98
3.2.1 按钮 98
3.2.2 列表 99
3.2.3 菜单和工具栏 105
3.2.4 容器控件 108
3.2.5 范围控件 109
3.2.6 编辑器 110
3.2.7 文档查看器 120
3.2.8 帧 121
3.3 构建部件 122
3.3.1 工具提示 122
3.3.2 拖动标 123
3.3.3 边框 125
3.3.4 弹出框 126
3.3.5 滚动查看器 127
3.3.6 视图框 129
3.4 小结 129
第4章 布局 130
4.1 布局原则 130
4.1.1 布局契约 131
4.1.2 一致的布局 132
4.1.3 没有内置的布局 139
4.2 布局库 140
4.2.1 画布 140
4.2.2 StackPanel 142
4.2.3 DockPanel 143
4.2.4 WrapPanel 145
4.2.5 UniformGrid 146
4.3 Grid 147
4.3.1 Grid的概念 147
4.3.2 Grid的布局过程 152
4.3.3 GridSplitter 154
4.4 编写自定义布局 155
4.5 小结 161
第5章 可视化效果 162
5.1 2D图形 162
5.1.1 2D图形的原则 163
5.1.2 几何图形 165
5.1.3 颜色 167
5.1.4 笔刷 169
5.1.5 画笔 173
5.1.6 图画(绘制) 175
5.1.7 形状 177
5.1.8 图像 178
5.1.9 不透明性 184
5.1.10 BitmapEffects 186
5.2 3D图形 187
5.2.1 3D风格的Hello World 187
5.2.2 3D原则 190
5.3 文档和文本 196
5.3.1 文本风格的Hello World 196
5.3.2 字体 200
5.3.3 文本布局 201
5.3.4 高级版式 206
5.4 动画 207
5.4.1 动画就是新的计时器 207
5.4.2 时间和时间线 216
5.4.3 定义动画 216
5.4.4 动画集成 219
5.5 媒体 222
5.5.1 音频 223
5.5.2 视频 225
5.6 小结 226
第6章 数据 227
6.1 数据原则 227
6.1.1 .NET数据模型 227
6.1.2 无处不在的绑定 228
6.1.3 数据转换 228
6.2 资源 229
6.3 绑定基础 234
6.4 绑定到CLR对象 237
6.5 绑定到XML 244
6.5.1 XPath 101 245
6.5.2 XML绑定 247
6.6 数据模板 250
6.7 高级绑定 254
6.7.1 层级绑定 254
6.7.2 集合视图 258
6.8 数据驱动显示 264
6.9 小结 268
第7章 动作 269
7.1 动作原则 269
7.1.1 元素合成 269
7.1.2 松散耦合 270
7.1.3 声明式动作 271
7.2 事件 272
7.3 命令 275
7.4 触发器 283
7.4.1 添加触发器到数据中 283
7.4.2 添加触发器到控件中 286
7.4.3 把触发器当作新的“if”语句 287
7.5 小结 288
第8章 样式 289
8.1 样式原则 289
8.1.1 元素合成 290
8.1.2 定制化的统一模型 291
8.1.3 针对工具进行优化 293
8.2 开始使用样式 294
8.2.1 模型、显示和样式 297
8.2.2 主题 300
8.2.3 换肤 303
8.2.4 样式继承 306
8.3 正确地使用样式 309
8.3.1 构建主题而非样式 309
8.3.2 一致性才是王道 310
8.3.3 找到一个正确的着眼点 311
8.4 小结 311
附录A 基础服务 312
A.1 线程和调度器 312
A.2 属性 316
A.2.1 .NET属性 317
A.2.2 属性系统101 321
A.2.3 元数据 323
A.3 键盘、鼠标和触摸笔 326
A.3.1 InputBinding 326
A.3.2 输入设备通信 329
A.3.3 键盘焦点 330
A.4 小结 330
……
序言 在我进入微软之前,还没有见过太多像Chris Anderson这样牛的人。
我现在已经在微软工作了(实际上,我就和Chris隔着两道门),不过在此之前的很长一段时间里,我都在一家Windows开发人员培训公司当讲师。我和我的同事由一个善于思考的博士研究生所领导,他把在学术研究中的严谨态度也用于工作之上,对每个问题都要研究得细致入微。因此,我们也被逼着学会了如何认真仔细地思考并清晰准确地交流。如果我们做的事情不能满足他的标准,他就会把我们赶到一边,在我们的面前重做我们的工作。(我们把这样的经验教训称为“捣腾(Swooping)”,而且我们都很努力地工作以避免这种情况的发生。)
同样地,我们也学会了不理会由我们的供应商所选择的那些教程和参考资料。因为很明显,不管他们能否考虑得面面俱到,他们也可能和我们无法完全地沟通。可以这么说,我们将近10年的整个工作就是“捣腾”微软本身,即重新以短期课程、会议演讲、杂志文章和书籍等形式把微软的文档资料重新整理。我们称之为“微软编外人员就业行动(Microsoft Continuing.EmploymentAct)”,这让我们的日子过得还挺滋润:微软吃肉,我们喝汤。
实际上,我们只需到处飞来飞去,说些诸如“记住调用Release”、“避免往返过程”和“忽略聚合”的话就可以出色完成工作,因为我们有微软自己无法说清楚但对于开发人员很有意义的一系列明确的指导材料。但这也不是说在微软内部不存在能够清晰思考的人(Tony Williams和Crispin Goswell就是两个我非常喜爱的人),不过那时候在初学者和能够阅读这样的高级著作的读者之间,还是存在着不可逾越的巨大鸿沟。
有了本书,开发WPF应用程序就可以得心应手了。ChrisAnderson是下一代GUI框架一WindowsPresentation Foundation——的一名构架师,而这个GUI框架正是本书的主题。读者可能会认为,构架师的本职工作就是保证对问题的研究深入透彻,并正确地提出解决方法,以便其他人能够按部就班,做一些表面的事『青就能让工作得以完成。而实际情况是,在本书中,Chris从始至终都在指导开发人员的日常工作。Chris对WPF内部的深刻理解可以为那些处于入门阶段的人们照亮学习之路,引导其深入了解他所创造(当然,我们也不能忘记这个创造还包括了超过300多个其他人的辛勤劳动)的这些基础功能。
本人也为其他出版社写了一本相同主题的书。我不能说本书是WPF学习中唯一需要的书籍(不然其他出版社会让我很“难堪”的),但是我可以肯定地说,这是一本需要时常翻阅的书。我也会拥有一本的。
文摘 插图:

通过定义自定义绑定类型,可以永远避免对逻辑(命令处理过程)和用户输入之间的依赖关系进行硬编码。避免类似的依赖关系对于让应用程序更具配置性是很有价值的,也可以保证能基于任何类型的输入来完成工作。
WPF的宗旨就是对于输入设备可以实现更多的声明式编程,而类型输入绑定这样的特性可以让我们更接近这个目标,毕竟与设备本身直接进行对话还是有点晦涩难懂的。如果确实需要和输入设备进行对话,WPF也提供了一个丰富的对象模型。
A.3.2输入设备通信
用于所有输入设备的对象模型是以相同的方式构造的,都有一个静态服务类(Keyboard、Mouse、stvlus或Tablet)和一个设备类(KeyboardDevice、MouseDevice等)。静态服务类提供了全局的功能(比如,附加到直接输入事件上并检索设备),而设备类提供了设备特定的功能。给定设备的常见属性通常是由静态服务类来实现的。
为了弄明白输入设备通信的这个概念,先来研究一下键盘。在之前的KeyChordItemGesture实现中,读者可能注意到,通过查找Keyboard类来检索限定符按键的当前状态。