WPF自学手册
文件大小: 44636k
源码售价: 10 个金币 积分规则     积分充值
资源说明:目 录 第一卷 程序江湖 第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章 木木能行,我也行
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。