WPF是微软新一代开发技术,涵盖了桌面应用程序开发、网络应用程序开发和移动应用程序开发,是微软开发技术未来十年的主要方向。
本书的内容分为两大部分。第一部分是学习WPF开发的基础知识,包括XAML语言的详细剖析、WPF控件的使用、用户界面布局的介绍。第二部分是作为优秀WPF程序员所应掌握的知识,包括依赖对象和数据关联、路由事件与命令、数据模板与控件模板、绘图与动画等。
本书作者具有多年WPF开发经验,历经多个大型项目,现任微软(美国)下载中心项目组高级开发工程师。本书是作者多年来学习和使用WPF的经验总结。
本书包含了众多WPF面试点,作者凭借书中的知识顺利通过微软(美国)的面试。
写作缘起
WPF之What & Why
致谢
第一部分 深入浅出话XAML
第1章 XAML概览 2
1.1 XAML是什么 2
1.2 XAML的优点 3
第2章 从零起步认识XAML 5
2.1 新建WPF项目 5
2.2 剖析最简单的XAML代码 8
第3章 系统学习XAML语法 14
3.1 XAML文档的树形结构 14
3.2 XAML中为对象属性赋值的语法 17
3.2.1 使用标签的Attribute为对象属性赋值 18
3.2.2 使用TypeConverter类将XAML标签的Attribute与对象的Property进行映射 19
3.2.3 属性元素 21
3.2.4 标记扩展(Markup Extensions) 24
3.3 事件处理器与代码后置 26
3.4 导入程序集和引用其中的名称空间 28
3.5 XAML的注释 30
.3.6 小结 30
第4章 x名称空间详解 31
4.1 x名称空间里都有什么 31
4.2 x名称空间中的Attribute 32
4.2.1 x:Class 32
4.2.2 x: ClassModifier 33
4.2.3 x: Name 34
4.2.4 x:FieldModifier 36
4.2.5 x:Key 36
4.2.6 x:Shared 38
4.3 x名称空间中的标记扩展 38
4.3.1 x:Type 38
4.3.2 x:Null 40
4.3.3 标记扩展实例的两种声明语法 42
4.3.4 x:Array 42
4.3.5 x:Static 44
4.4 XAML指令元素 45
4.5 小结 46
第5章 控件与布局 47
5.1 控件到底是什么 47
5.2 WPF的内容模型 49
5.3 各类内容模型详解 51
5.3.1 ContentControl族 51
5.3.2 HeaderedContentControl族 52
5.3.3 ItemsControl族 53
5.3.4 HeaderedItemsControl族 57
5.3.5 Decorator族 57
5.3.6 TextBlock和TextBox 58
5.3.7 Shape族元素 58
5.3.8 Panel族元素 58
5.4 UI布局(Layout) 59
5.4.1 布局元素 59
5.4.2 Grid 61
5.4.3 StackPanel 70
5.4.4 Canvas 71
5.4.5 DockPanel 72
5.4.6 WrapPanel 74
5.5 小结 75
第二部分游历WPF内部世界
第6章 深入浅出话Binding 80
6.1 Data Binding在WPF中的地位 81
6.2 Binding基础 82
6.3 Binding的源与路径 87
6.3.1 把控件作为Binding源与Binding标记扩展 87
6.3.2 控制Binding的方向及数据更新 88
6.3.3 Binding的路径(Path) 89
6.3.4 “没有Path”的Binding 92
6.3.5 为Binding指定源(Source)的几种方法 93
6.3.6 没有Source的Binding——使用DataContext作为Binding的源 94
6.3.7 使用集合对象作为列表控件的ItemsSource 98
6.3.8 使用ADO.NET对象作为Binding的源 102
6.3.9 使用XML数据作为Binding的源 105
6.3.10 使用LINQ检索结果作为Binding的源 109
6.3.11 使用ObjectDataProvider对象作为Binding的Source 111
6.3.12 使用Binding的RelativeSource 116
6.4 Binding对数据的转换与校验 120
6.4.1 Binding的数据校验 120
6.4.2 Binding的数据转换 123
6.5 MultiBinding(多路Binding) 128
6.6 小结 131
第7章 深入浅出话属性 132
7.1 属性(Property)的来龙去脉 132
7.2 依赖属性(Dependency Property) 136
7.2.1 依赖属性对内存的使用方式 136
7.2.2 声明和使用依赖属性 137
7.2.3 依赖属性值存取的秘密 143
7.3 附加属性(Attached Properties) 148
第8章 深入浅出话事件 155
8.1 近观WPF的树形结构 155
8.2 事件的来龙去脉 157
8.3 深入浅出路由事件 160
8.3.1 使用WPF内置路由事件 160
8.3.2 自定义路由事件 164
8.3.3 RoutedEventArgs的Source与OriginalSource 169
8.3.4 事件也附加——深入浅出附加事件 171
第9章 深入浅出话命令 175
9.1 命令系统的基本元素与关系 176
9.1.1 命令系统的基本元素 176
9.1.2 基本元素之间的关系 176
9.1.3 小试命令 177
9.1.4 WPF的命令库 180
9.1.5 命令参数 180
9.1.6 命令与Binding的结合 182
9.2 近观命令 183
9.2.1 ICommand接口与RoutedCommand 183
9.2.2 自定义Command 186
第10章 深入浅出话资源 192
10.1 WPF对象级资源的定义与查找 192
10.2 且“静”且“动”用资源 195
10.3 向程序添加二进制资源 196
10.4 使用Pack URI路径访问二进制资源 199
第11章 深入浅出话模板 202
11.1 模板的内涵 202
11.2 数据的外衣DataTemplate 205
11.3 控件的外衣ControlTemplate 214
11.3.1 庖丁解牛看控件 215
11.3.2 ItemsControl的PanelTemplate 220
11.4 DataTemplate与ControlTemplate的关系与应用 221
11.4.1 DataTemplate与ControlTemplate的关系 221
11.4.2 DataTemplate与ControlTemplate的应用 223
11.4.3 寻找失落的控件 230
11.5 深入浅出话Style 236
11.5.1 Style中的Setter 236
11.5.2 Style中的Trigger 237
第12章 绘图和动画 244
12.1 WPF绘图 245
12.2 图形的效果与滤镜 263
12.2.1 简单易用的BitmapEffect 263
12.2.2 丰富多彩的Effect 264
12.3 图形的变形 267
12.3.1 呈现变形 268
12.3.2 布局变形 270
12.4 动画 272
12.4.1 简单独立动画 272
12.4.2 场景 285
《安史之乱(修订版)》内容简介:开元盛世末期,长安城的大街小巷、酒肆茶楼,依然是人来人往,你唱我和,一片繁华景象,几许欢乐
《华为HCIA路由交换认证指南》内容简介:本书是针对HCIA最新考试大纲编写的认证教材。全书共分为15章,首先介绍了计算机网络的产生
本书是《响应式Web设计:HTML5和CSS3实战》作者BenFrain的又一力作。作者通过丰富、完整的案例,循序渐进地展示了Sass和Compass的
华南师范大学计算机学院教授。大学毕业并任教于军事电信工程学院(即西安电子科技大学)信息工程系,多年从事数字系统、数据通信和
《HBase原理与实践》内容简介:本书系统介绍HBase基本原理与运行机制,融入了作者多年的开发经验与实践技巧。主要内容包括:HBase的
精通UG NX5中文版-基础入门篇(附赠1CD.含4小时语音视频教学) 内容简介 全书共分14章,主要介绍了ug nx5的绘图命令、实体特征以及各项命令的操作与...
《门岭怪谈》内容简介:深夜两点整,暴雨不期而至,一行人在高速公路上迷失方向,偶然走进一间荒村旅店。命运的巨眼在黑雾中缓缓睁
无师自通学点电脑新手学photoshop图像处理 本书特色 本书共分为12章,通过理论与实践相结合,全面、详细讲解了初识图像处理、创建与编辑选区、调整色...
《精通Python网络爬虫》内容简介:随着大数据时代的到来,我们经常需要在海量数据的互联网环境中搜集一些特定的数据并对其进行分析
《复变函数与积分变换学习辅导与习题全解(华中科大•2版)》是与《复变函数与积分变换》(第二版)(华中科技大学数学系编)配套的学习
《精彩江苏·画派系列:金陵画派》内容简介:金陵画派是明末清初活动于金陵地区以金陵八家为代表的画家群体的总称。这些画家大多具
《生活英语口语100主题》内容简介:互联网+时代,你最需要的英语学习书!新东方、英孚等资深外教诚恳推荐,生活英语完全收录,让你
《李济平 邓定海传》内容简介:本书为雨花台烈士传丛书第四批之一,为李济、邓定海烈士的合传。李济于1927年加入中国,曾任扬州地委
与以前的网站建设相比,现在的网站建设变得更加细分化。设计师的作用不再仅仅是制作视觉效果突出的图像。而是应该以项目为中心考
BeforeandAftermagazinesfocusonclarity,simplicity,andelegancehaswonitlegionsoffan...
《RocketMQ技术内幕》内容简介:这是一本指导读者如何在实践中让RocketMQ实现低延迟、高并发、高可用、高可靠的著作。作者是Rocket
《跟动物交换身体2》内容简介:★畅销书《跟动物交换身体》第二弹重磅上市!魔性画风+专业知识+奇趣解读,以独特的视角直观解读动物
錢研發的高科技產品,為何九五%都是賠錢貨?錢景?還是陷阱?九組關鍵準則,判讀最值得投資的高科技產業。對創造、投資新科技的
MATLAB 在数学建模中的应用-(第2版) 本书特色 《matlab在数学建模中的应用》(第2版)一书是《matlab在数学建模中的应用》一书的第2版...
《TKT剑桥英语教学能力认证考试全真模拟试题(2020年版)》内容简介:本书是TKT剑桥英语教学能力认证考试的专用辅导用书,从考试内