当前位置:在线查询网 > 在线百科全书查询 > WPF自学手册

WPF自学手册_在线百科全书查询


请输入要查询的词条内容:

WPF自学手册


《WPF自学手册》全名为《葵花宝典——WPF自学手册》,由李响编著,于2010年8月出版。这本WPF葵花宝典最大的作用是:让从未接触过Microsoft Windows Presentation Foundation的人,能够从初学入门到精通掌握运用WPF来进行Web开发。



图书信息


书名:葵花宝典——WPF自学手册ISBN 978-7-121-11405-2

定价:79.00元(含DVD光盘1张)

开本:16开

页码:628页

宣传语


欲精通WPF,必先自“功”,即必先经历如下七步:

程序江湖

心法

小有所成

峰回路转,夯实基础

紫杉红烛

华山之巅

志向无限大

作者简介


李响,信息工程大学测绘学院制图学与地理信息工程系讲师,博士研究生。目前研究方向为地理信息系统和人机交互。十年程序生涯,漫漫征途,方修得一本宝书《葵花宝典——WPF自学手册》。

内 容 简 介


这本书最大的作用是让从未接触过Microsoft Windows Presentation Foundation的读者能够从初学到精通掌握,运用WPF来进行Web开发,而且这本书的叙事风格和手法使得读者在经历掌握Microsoft WPF开发的整个过程是如此轻松快乐,在作者风趣调侃的语言当中不知不觉地学会WPF开发。本书从WPF的相关工具开始讲起,从WPF的体系结构、XAML、依赖属性、路由事件、命令等方面为读者奠定了一个坚实的学习基础。之后就切入了应用程序窗口、页面导航、布局等起步应用,能让读者及时地体会 到学习的成就感和乐趣。接下来的控件、样式、数据绑定、二维图形、动画等相关内容则能够为读者的WPF技术提升到一个比较高的层次,如同插上翅膀,自由翱翔。

这本书对于WPF核心技术的原理、概念、技术、技巧与开发实践的讲述,是基于一位完全不懂WPF的菜鸟学习经历的,非常符合国内程序员WPF技术的初学路线,如果您想学习Microsoft WPF技术的话,那么这本书将是您的不二选择。

楔 子


江湖中盛传一部奇书,谁要依此书修炼武功就能“号令群雄,莫敢不从”,此书正是天下第一奇书——《葵花宝典》。

天下武功都是循序渐进,越到后来越难。但此书却违背常理,最难的是第一关。只要打通这一关,以后就遇山开山,遇水架桥,佛来斩佛,魔来斩魔。而这第一关则是“欲练神功,引刀自宫”,据说有人挥泪自宫之后成为了传说中的“东方不败”。但是也有不幸的人是在地摊上花上五毛钱买的盗版《葵花宝典》,翻开第1页是“欲练神功,必先自宫”,于是依言挥刀自宫。血还未止,忍疼翻到第2页,又是8个大字“即使自宫,未必成功”映入眼帘。此时后悔已经来不及了,只好继续翻到第3页,还是8个大字“如不自宫,也能成功”,偶的神啊!

废话不能再多说了,本书的头号主角就要闪亮登场。此人姓木,单名一个木,全名木木,呆若木鸡的木。大学二年级,好金庸,喜武侠;除此之外,对计算机编程有几分兴趣,也有几分傻气。学了一点C++和C#语言,有过一些MFC及WinForm编程的经验。闲时没事会在旧书市场闲逛,妄想淘得一本程序上的武功秘籍,一举成为Bill Gates那样的首富。“到那时候,嘿,嘿……”木木干笑了几声:“一定要开宝马车去校园门口的鸡蛋饼摊买鸡蛋饼,或者在街头坐着一个小马扎吃热干面,不过是百元大钞摞起来的小马扎而已……”

这一次还是在旧书市场闲逛,木木在众多的“贪官和他的情妇们”、“二十位都市男女情感口述”及“女硕士借精一夜情”等此类杂志中发现了一本泛黄的书,封面上写着“葵花”两字。抽出来一看,才发现下面还有“宝典”二字,完整起来就是传说中的“葵花宝典”。木木不禁心扑腾扑腾乱跳,再一细看,下面还有一行小字“WPF自学手册”。以前隐约听说过WPF,应该是.NET里面的新技术,看来这本书就是传说中程序的“武功秘笈”了。旧书都用不了多少钱的,木木丢给了老板五元钱后,就像做贼一样将书揣在怀里回去了。

回到家里,木木备好了剪刀(自宫而用),又放了一张女友靓照(看看也许会后悔)。闭上眼,颤抖地翻开了第1页。慢慢睁开眼,上面赫然写着几个大字“定价:3.9元”。不禁大骂老板黑心,新书才3.9元,旧书居然卖给我5元。气愤之余不忘翻开书的第2页,果然有8个大字“欲练神功,必先自功”。木木早就听说过盗版葵花宝典的故事,于是继续往下翻,直到最后一页也没有“未必成功、无需自宫”这样的字眼。宫还是不宫?木木左手拿剪刀,右手拿女友靓照,还真是难以抉择啊。

等等,木木又翻回第2页,揉揉眼再看了看。是成功的功,而不是自宫的宫。“唉,又是盗版书,‘宫’字还印错了。依法修炼,肯定不能成功了?”木木心想。于是将剪刀和靓照都抛去,拿着书躺在床上权当小杂志读读。谁知翻到第3页,该书却写到:“你宫了么?若挥刀自宫,请立刻拨打120,兴许有救。此功非彼宫,学习WPF需要用功、用功再用功。因此欲练神功,必先自功。”木木腾地一下从床上跳起来,拿着书一屁股坐到书桌边,看来这的确是一本程序的武功秘笈,而且自功不自宫,相当划算喔。

诸位看到这儿,一定也获得这本武功秘籍了吧。那么请你们和木木一起走进WPF的世界,一定要“自功”才能学到真正的WPF喔^_^。

目 录


第一卷 程序江湖

第1章 上路吧,WPF

1.1 江湖前传 2

1.1.1 微软的四重门 2

1.1.2 DirectX——无心插柳柳成荫 4

1.2 WPF来了 4

1.2.1 七十二变 5

1.2.2 WPF的与众不同之处 8

1.3 接下来做什么 9

参考文献 10

第2章 WPF相关工具——十八般兵器

2.1 Microsoft Visual Studio 2010 12

2.1.1 13年间 12

2.1.2 认识Visual Studio 2010 13

2.2 命令行和记事本——小米加步枪 17

2.2.1 编译简单的C#程序 18

2.2.2 引用外部程序集 19

2.2.3 编译WPF应用程序 20

2.3 Microsoft Expression Blend 23

2.3.1 优势 23

2.3.2 组成 23

2.4 XamlPad 24

2.5 Reflector 26

2.6 接下来做什么 27

参考文献 27

第3章 WPF体系结构——藏宝图

3.1 Windows体系结构 28

3.2 WPF内部结构 30

3.2.1 切入点之一:托管和非托管的界限 30

3.2.2 切入点之二:WPF如何实现绘制 30

3.2.3 切入点之三:WPF类层次结构 33

参考文献 36

第二卷 心 法

第4章 XAML——反两仪刀法和正两仪剑法

4.1 从C#到XAML 39

4.2 命名空间及其映射 43

4.2.1 WPF的命名空间 43

4.2.2 XAML的命名空间 45

4.2.3 其他命名空间 46

4.3 简单属性和附加属性 49

4.3.1 简单属性 49

4.3.2 附加属性 50

4.4 Content属性 51

4.5 类型转换器 53

4.5.1 功能 53

4.5.2 自定义类型转换器 54

4.6 标记扩展 56

4.7 分别使用XAML和C#构建应用程序——刀还是刀,剑还是剑 57

4.7.1 XAML——反两仪刀法 57

4.7.2 C#——正两仪剑法 59

4.8 使用XAML和C#构建应用程序——刀剑合璧 60

4.8.1 第1次刀剑合璧 61

4.8.2 完美的刀剑合璧 63

4.8.3 还有一种方法——在XAML中嵌入代码 67

4.9 接下来做什么 68

参考文献 68

第5章 依赖属性——木木的“汗血宝马”

5.1 属性与依赖 69

5.2 认识依赖属性 72

5.2.1 分辨依赖属性 72

5.2.2 引入依赖属性的原因 73

5.2.3 依赖属性的组成部分 82

5.3 自定义依赖属性 83

5.3.1 何时需要自定义一个依赖属性 83

5.3.2 自定义依赖属性示例 84

5.4 所有规则大排队 90

5.4.1 按钮到底是什么颜色 90

5.4.2 依赖属性设置优先级列表 91

5.4.3 验证优先级的示例 92

5.5 附加属性和“等餐号” 95

5.5.1 如果没有附加属性 96

5.5.2 附加属性的本质 96

5.6 接下来做什么 97

参考文献 98

第6章 路由事件——绝情谷底玉蜂飞

6.1 从玉蜂说起,回顾.NET事件模型 99

6.2 路由事件的定义 104

6.3 路由事件的作用 106

6.4 路由事件 108

6.4.1 识别路由事件 108

6.4.2 路由事件的旅行 109

6.5 路由事件示例 113

6.6 接下来做什么 116

参考文献 116

第7章 WPF的命令(Command)——明教的圣火令

7.1 木木的写字板(无Command) 117

7.1.1 简单的写字板原型 118

7.1.2 右键菜单和快捷键 120

7.1.3 控制功能状态 121

7.1.4 小徐的写字板为何如此简单 124

7.2 小徐的写字板(有Command) 126

7.3 Command的作用 128

7.4 WPF的Command模型 129

7.4.1 Command——圣火令 130

7.4.2 Command Sources——明教教主 132

7.4.3 Command Binding——波斯三使 132

7.4.4 Command Target——金毛狮王 133

7.5 接下来做什么 133

参考文献 134

第三卷 小有所成

第8章 应用程序窗口——大侠的成长路线

8.1 新建一个应用程序 136

8.1.1 手动创建 136

8.1.2 使用向导创建 139

8.2 应用程序及其生命周期 139

8.2.1 小强的成长路线图 139

8.2.2 应用程序的生命周期 140

8.3 窗口 145

8.3.1 窗口组成 146

8.3.2 窗口的生命周期 146

8.3.3 窗口属性 149

8.3.4 非规则窗口 155

8.4 接下来做什么 158

参考文献 158

第9章 页面和导航——天罡北斗阵演绎

9.1 导航应用程序演绎 159

9.1.1 第3类应用程序 159

9.1.2 两种形式 160

9.1.3 4个核心 160

9.2 页面 161

9.2.1 Page 161

9.2.2 Page的宿主窗口 163

9.3 导航连接 164

9.3.1 超链接 164

9.3.2 通过编程导航 166

9.3.3 其他方式导航 168

9.4 历史管理 169

9.5 导航和Page的生命周期 171

9.5.1 这一“点击”的背后 171

9.5.2 Page的生命周期 177

9.6 保留页面状态和数据传递 177

9.6.1 构建登录应用程序 179

9.6.2 由前向后传递数据 181

9.6.3 WPF固有的页面状态保留机制 183

9.6.4 使用依赖属性保留简单的页面状态信息 183

9.6.5 由后向前传递数据方法的PageFunction 185

9.6.6 使用IProvideCustomContentState接口保留复杂的页面状态

信息 188

9.7 XAML浏览器应用程序 192

9.7.1 将一个基于窗口的导航程序变换成XBAP程序——乾坤大挪移 193

9.7.2 XAML浏览器应用程序小结 194

9.8 接下来做什么 196

参考文献 196

第10章 布局——药师的桃花岛

10.1 憨木木误闯桃花宝岛 197

10.2 老顽童试解桃花玄机 198

10.2.1 Canvas 199

10.2.2 StackPanel 200

10.2.3 WrapPanel 202

10.2.4 DockPanel 203

10.2.5 Grid 205

10.3 黄岛主演绎布局精妙 210

10.3.1 桃树林的属性 210

10.3.2 自定义布局 213

10.4 接下来做什么 216

参考文献 216

第11章 控件与Content——北冥神功

11.1 缘起 218

11.2 Content模型及其家族 219

11.2.1 Content模型 219

11.2.2 Content家族 220

11.3 经典控件 222

11.3.1 Content控件 222

11.3.2 HeaderedContent控件 226

11.3.3 Items控件 230

11.3.4 Range控件 238

11.4 接下来做什么 242

参考文献 243

第四卷 小有所成

第12章 资源——雪山宝藏

12.1 程序集资源 245

12.1.1 资源文件 246

12.1.2 内容文件 248

12.1.3 Site of Origin文件 250

12.2 URI语法 250

12.2.1 WPF中的URI 251

12.2.2 一个全面的URI用法示例 251

12.2.3 WPF中的URI处理顺序 253

12.3 逻辑资源 254

12.3.1 静态资源和动态资源 255

12.3.2 系统资源 257

12.3.3 共享资源 259

12.3.4 通过代码定义和访问资源 259

12.3.5 使用ResourceDictionary组织资源 260

12.3.6 在程序集之间共享资源 262

12.4 接下来做什么 264

参考文献 265

第13章 样式和控件模板——听香水榭,千变阿朱

13.1 样式那一点事儿 267

13.1.1 何来样式 267

13.1.2 基本用法 269

13.1.3 触发器 270

13.2 模板示例——听香水榭边,须发如银人 273

13.3 模板工作原理——淡淡少女香,侃侃孙三谈 276

13.3.1 模板绑定和模板触发器 279

13.3.2 其他修改 279

13.4 控件模板的浏览器程序——龙钟老太太,妙龄俏阿朱 280

13.5 样式、模板和换肤——阿朱技高超,木木向来痴 285

13.5.1 混合使用 285

13.5.2 组织模板资源和更换皮肤 286

13.6 接下来做什么 289

参考文献 289

第14章 数据绑定——桃花岛软件公司人员管理系统之始末缘起 290

14.1 人员管理系统 290

14.1.1 浏览和修改人员信息(无数据绑定) 290

14.1.2 数据绑定(木木,老婆喊你回家吃饭) 294

14.1.3 使用数据绑定 294

14.2 数据绑定基础 296

14.2.1 数据绑定模型 296

14.2.2 数据绑定的方向 297

14.2.3 数据绑定的触发条件 299

14.2.4 绑定数据源的4种方式 301

14.2.5 值转换 302

14.2.6 数据验证 303

14.3 高级主题——与数据集合绑定 307

14.3.1 实现一个数据源集合 307

14.3.2 绑定目标和集合 308

14.3.3 数据模板 309

14.3.4 集合视图 311

14.4 后记 315

14.5 接下来做什么 315

参考文献 315

第五卷 紫杉红烛

第15章 奇妙的二维图形世界——面壁

15.1 面壁 317

15.2 二维图形的数学基础(第一块石壁) 319

15.2.1 分辨率无关 319

15.2.2 坐标系 324

15.2.3 点和向量 326

15.2.4 几何变换 330

15.2.5 齐次坐标 333

15.2.6 WPF中的对象变换 341

15.3 WPF的二维图形架构(第二块石壁) 342

15.3.1 立即模式和保留模式 343

15.3.2 WPF二维图形体系结构 350

15.3.3 WPF二维图形的重要元素 352

15.3.4 书架上到底放什么书 355

15.4 颜色和画刷(第一本书) 356

15.4.1 颜色 356

15.4.2 画刷 359

15.4.3 使用画刷制作特效 369

15.5 Shape(第二本书) 372

15.5.1 简单的Shape元素 373

15.5.2 线型、线帽、线的连接和填充规则 376

15.5.3 放置并调整Shape大小 380

15.5.4 Path 382

15.6 Geometry(第三本书) 383

15.6.1 理解Geometry 383

15.6.2 简单的Geometry类型 384

15.6.3 GeometryGroup和CombineGeometry 386

15.6.4 PathGeometry和StreamGeometry 387

15.6.5 路径描述语言 394

15.7 Drawing和Visual 395

15.7.1 Drawing及其派生类 395

15.7.2 Drawing类型 396

15.7.3 Visual 400

15.8 接下来做什么(面壁之后) 406

参考文献 406

第16章 动画——降龙的最后一掌

16.1 七公和他的降龙十八掌 407

16.2 WPF实现动画的方式 408

16.2.1 基于计时器的动画 408

16.2.2 基于帧的动画 410

16.2.3 基于属性的动画 411

16.3 WPF动画的基本知识 411

16.3.1 前提条件 411

16.3.2 动画类的类层次结构 412

16.3.3 时间线的基本行为 414

16.4 3种基本类型动画 422

16.4.1 From/To/By类型动画 422

16.4.2 KeyFrame类型动画 423

16.4.3 Path类型动画 428

16.5 动画的交互控制 431

16.6 后记:降龙的最后一掌 432

16.7 接下来做什么 434

参考文献 434

第17章 WPF3D图形

17.1 WPF3D引言 435

17.1.1 WPF3D图形的作用 435

17.1.2 用2D图形产生立体感 437

17.1.3 WPF3D类概览 440

17.2 WPF3D数学基础 444

17.2.1 坐标系 444

17.2.2 空间点 445

17.2.3 向量 446

17.2.4 矩阵和几何变换 451

17.3 从3D物体到2D图形 454

17.3.1 3个坐标系 455

17.3.2 Camera对象 457

17.3.3 坐标变换 462

17.4 基本几何体 471

17.4.1 使用直线

ScreenSpaceLines3D 471

17.4.2 构建立方体 473

17.4.3 构建球面 475

17.5 光源和材质 479

17.5.1 光源 479

17.5.2 着色和法线 483

17.5.3 计算DiffuseMaterial和表面颜色 487

17.5.4 其他材质 488

17.5.5 纹理 490

17.6 动画和交互 493

17.6.1 动画 493

17.6.2 交互 496

17.7 接下来做什么 500

参考文献 500

第18章 文本和文档——从黑风双煞的“练门”说起

18.1 从TextElement说起 502

18.1.1 文本 502

18.1.2 TextElement 503

18.1.3 TextElement的属性 504

18.2 TextBlock控件 509

18.2.1 与文本相关的属性 509

18.2.2 文本属性 513

18.2.3 其他简单的文本控件 515

18.3 理解WPF的文档 515

18.3.1 ContentElement 515

18.3.2 流文档模型 516

18.3.3 固定文档 523

18.4 文档控件 524

18.4.1 固定文档的浏览控件 524

18.4.2 流文档的浏览控件 526

18.4.3 注释功能 528

18.5 实现一个简单的文档浏览器 531

18.5.1 应用程序组成 531

18.5.2 打开一个流文档 532

18.5.3 另存为不同格式的文件 535

18.5.4 实现缩略图功能 543

18.5.5 实现书签和标注功能 545

18.6 接下来做什么 550

参考文献 550

第六卷 华山之巅

第19章 互操作——“小无相功”

19.1 为什么需要互操作? 553

19.2 互操作的几种类型 553

19.3 Windows Forms和WPF 554

19.3.1 对话框 554

19.3.2 在同一个窗口中混合WPF和WinForm内容 558

19.4 在Win32中嵌入WPF内容 564

19.4.1 现有的Win32程序 564

19.4.2 使用WPF制作钟表 568

19.4.3 将WPF内容嵌入在Win32程序中 569

19.5 在WPF中嵌入Win32内容 574

19.5.1 一个Win32的DLL工程 574

19.5.2 使用HwndHost 577

19.5.3 支持键盘导航 580

19.6 接下来做什么 585

参考文献 585

第20章 自定义控件——出手无招,何招可破

20.1 风老前辈登场 586

20.2 用RadioButton实现红绿灯 588

20.3 何时自定义控件? 590

20.3.1 不要被控件的外观所欺骗,

要考虑其内在本质 590

20.3.2 Content模型、模板和附加属性 591

20.3.3 使用附加属性扩展现有控件 592

20.4 自定义控件 598

20.4.1 自定义控件的3个层次 599

20.4.2 从UserControl开始 600

20.5 无外观控件 603

20.5.1 无形才是有形 603

20.5.2 定义命令 605

20.5.3 在主题中定义控件外观 606

20.6 接下来做什么 609

参考文献 609

第七卷 志向无限大

第21章 木木能行,我也行

葵花宝典的真正秘密 611

写给大学生 612

相关分词: WPF 自学 手册