首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

目    录

第一部分 背  景

第1章 为什么创造WPF... 2

1.1  回顾过去..... 2

1.2  步入WPF... 3

1.3  作为.NET Framework的组成部分..... 7

1.3.1  为托管代码而设计..... 8

1.3.2  强调声明式描述..... 8

1.4  小结..... 9

第2章 XAML揭秘...... 10

2.1  XAML定义..... 11

2.2  元素和特性..... 11

2.3  命名空间..... 12

2.4  属性元素..... 14

2.5  类型转换器..... 15

2.6  标记扩展..... 16

2.7  对象元素的子元素..... 18

2.7.1  内容属性..... 18

2.7.2  集合项..... 19

2.7.3  更多类型转换..... 20

2.8  编译:将XAML与过程式代码
混合使用..... 22

2.8.1  在运行时加载和解析XAML... 22

2.8.2  编译XAML... 24

2.8.3  XAML关键字..... 28

2.9  小结..... 29

2.9.1  抱怨1:XML太过冗长不便于
输入..... 30

2.9.2  抱怨2:基于XML的系统性
能差..... 30

第3章 WPF的重要新概念...... 31

3.1  逻辑树与可视树..... 31

3.2  依赖属性..... 35

3.2.1  依赖属性的实现..... 36

3.2.2  变更通知..... 38

3.2.3  属性值继承..... 39

3.2.4  对多个提供程序的支持..... 41

3.2.5  附加属性..... 43

3.3  路由事件..... 46

3.3.1  路由事件的实现..... 46

3.3.2  路由策略和事件处理程序..... 48

3.3.3  路由事件实践..... 48

3.3.4  附加事件..... 51

3.4  命令..... 53

3.4.1  内建命令..... 54

3.4.2  使用输入手势执行命令..... 57

3.4.3  带有内建命令绑定的控件..... 58

3.5  漫游类层次..... 59

3.6  小结..... 60

第二部分 构建WPF应用程序

第4章 WPF控件...... 62

4.1  内容控件..... 63

4.1.1  按钮..... 63

4.1.2  简单容器..... 66

4.1.3  带头(header)的容器..... 70

4.2  Items控件..... 71

4.2.1  选择器..... 73

4.2.2  菜单..... 82

4.2.3  其他Items控件..... 85

4.3  Range控件..... 89

4.3.1  ProgressBar... 89

4.3.2  Slider... 90

4.4  文本和墨水控件..... 90

4.4.1  TextBox... 91

4.4.2  RichTextBox... 91

4.4.3  PasswordBox... 92

4.4.4  InkCanvas... 92

4.5  小结..... 93

第5章 尺寸缩放、定位与变换元素...... 94

5.1  控制尺寸..... 95

5.1.1  高度和宽度..... 95

5.1.2  Margin和Padding... 96

5.1.3  Visibility... 98

5.2  控制定位..... 98

5.2.1  对齐..... 99

5.2.2  内容对齐..... 99

5.2.3  FlowDirection... 100

5.3  应用变换..... 101

5.3.1  RotateTransform... 102

5.3.2  ScaleTransform... 103

5.3.3  SkewTransform... 105

5.3.4  TranslateTransform... 105

5.3.5  MatrixTransform... 106

5.3.6  组合变换..... 106

5.4  小结..... 107

第6章 使用面板做布局...... 108

6.1  Canvas... 109

6.2  StackPanel... 111

6.3  WrapPanel... 112

6.4  DockPanel... 114

6.5  Grid... 116

6.5.1  改变行和列的尺寸..... 119

6.5.2  与GridSplitter交互改变
尺寸..... 120

6.5.3  共享行和列的尺寸..... 122

6.5.4  Grid与其他面板的比较..... 123

6.6  原始面板..... 124

6.6.1  TabPanel... 125

6.6.2  ToolBarOverflowPanel... 125

6.6.3  ToolBarTray... 125

6.6.4  UniformGrid... 125

6.7  处理内容溢出..... 126

6.7.1  剪辑..... 126

6.7.2  滚屏..... 127

6.7.3  缩放..... 129

6.8  把它们拼合:创建一个类似Visual Studio
的可收缩、可停靠、可改变尺寸的窗格..... 132

6.9  小结..... 141

第7章 构建并部署应用程序...... 142

7.1 标准Windows应用程序..... 142

7.1.1 Window类..... 143

7.1.2 Application类..... 145

7.1.3 创建并显示对话框..... 150

7.1.4 维持并恢复应用程序状态..... 152

7.1.5 部署:ClickOnce与Windows
Installer. 153

7.2 基于导航的Windows应用程序..... 154

7.2.1 Page和它们的导航容器..... 154

7.2.2 页间导航..... 156

7.2.3 页间数据传递..... 160

7.3 拥有Windows Vista感官的应用程序..... 162

7.3.1 用TaskDialog替代
MessageBox.. 163

7.3.2 使用Aero Glass.. 165

7.4 Gadget风格的应用程序..... 168

7.5 XAML浏览器应用程序..... 169

7.5.1 功能限制..... 170

7.5.2 集成的导航功能..... 172

7.5.3  部署..... 172

7.6 松散XAML页..... 175

7.7 小结..... 176

第三部分 为专业开发人员设计的功能

第8章 资源...... 178

8.1 二进制资源..... 178

8.1.1 定义二进制资源..... 178

8.1.2  访问二进制资源..... 179

8.1.3  本地化..... 183

8.2  逻辑资源..... 184

8.2.1  资源查找..... 187

8.2.2  静态资源与动态资源..... 187

8.2.3  与系统资源交互..... 192

8.3  小结..... 193

第9章 数据绑定...... 194

9.1  绑定对象..... 194

9.1.1  在程序代码中使用绑定..... 194

9.1.2  在XAML中使用绑定..... 196

9.1.3  与普通.NET属性绑定..... 197

9.1.4  绑定到整个对象..... 199

9.1.5  绑定到集合..... 200

9.1.6  与DataContext共享源..... 203

9.2  控制呈现..... 204

9.2.1  使用数据模板..... 204

9.2.2  使用值转换器..... 206

9.3  定制一个集合的视图..... 210

9.3.1  排序..... 210

9.3.2  分组..... 212

9.3.3  过滤..... 214

9.3.4  导航..... 215

9.3.5  使用其他视图..... 216

9.4  数据提供程序..... 218

9.4.1  XmlDataProvider... 218

9.4.2  ObjectDataProvider... 222

9.5  高级主题..... 224

9.5.1  自定义数据流..... 224

9.5.2  向绑定添加验证规则..... 226

9.5.3  写你自己的验证规则..... 226

9.5.4  使用不相交源..... 228

9.6  把它们拼合:纯XAML RSS阅读器..... 230

9.7  小结..... 232

第10章 样式、模板、皮肤和主题...... 233

10.1  样式..... 234

10.1.1  共享Style.. 235

10.1.2  触发器..... 240

10.2  模板..... 244

10.2.1  控件模板..... 245

10.2.2  与触发器交互..... 246

10.2.3  限制目标类型..... 247

10.2.4  关于已应用模板的父元素的
属性..... 248

10.2.5  关于可视状态..... 254

10.2.6  将模板与样式混合起来..... 258

10.3  皮肤..... 260

10.4  主题..... 266

10.4.1  使用系统颜色、字体和参数..... 266

10.4.2  每个主题的样式和模板..... 267

10.5  小结..... 270

第四部分 通过富媒体使程序领先于时代

第11章 2D图形...... 272

11.1  Drawing.. 273

11.1.1  Geometry.. 275

11.1.2  Pen.. 283

11.1.3  剪贴画示例..... 285

11.2  Visual.. 286

11.2.1  用内容填充DrawingVisual.. 286

11.2.2  在屏幕上显示Visual.. 289

11.2.3  可视命中测试..... 291

11.3  Shape.. 297

11.3.1  Rectangle.. 298

11.3.2  Ellipse.. 299

11.3.3  Line.. 300

11.3.4  Polyline.. 300

11.3.5  Polygon.. 301

11.3.6  Path.. 301

11.3.7  基于Shape的剪贴画..... 302

11.4  Brush.. 303

11.4.1  颜色笔刷..... 303

11.4.2  tile笔刷..... 309

11.4.3  把Brush用作透明掩码..... 315

11.5  位图效果..... 317

11.6  小结..... 320

第12章 3D图形...... 321

12.1  3D图形入门..... 321

12.2  Camera和坐标系统..... 325

12.2.1  Position属性..... 325

12.2.2  LookDirection.. 327

12.2.3  UpDirection.. 329

12.2.4  平行投影与透视投影..... 331

12.3  Transform3D.. 332

12.3.1  TranslateTransform3D.. 334

12.3.2  ScaleTransform3D.. 335

12.3.3  RotateTransform3D.. 337

12.3.4  Transform3D组合..... 339

12.4  Model3D.. 340

12.4.1  光照(Light)..... 341

12.4.2  GeometryModel3D.. 345

12.5  Visual3D.. 357

12.5.1  ModelVisual3D.. 357

12.5.2  3D命中测试..... 358

12.6  Viewport3D元素..... 359

12.7  小结..... 362

第13章 动画...... 363

13.1  程序代码中的动画..... 363

13.1.1  “手工”实现动画..... 363

13.1.2  动画类..... 365

13.1.3  简单的动画调整..... 370

13.2  XAML中的动画..... 373

13.2.1  EventTrigger包含
storyboard.. 374

13.2.2  将Storyboard作为Timeline
使用..... 379

13.3  关键帧动画..... 381

13.3.1  线性关键帧..... 382

13.3.2  样条关键帧..... 384

13.3.3  离散关键帧..... 385

13.4  小结..... 387

第14章 音频、视频、语音和文档...... 388

14.1  音频..... 388

14.1.1  SoundPlayerAction.. 389

14.1.2  MediaPlayer.. 390

14.1.3  MediaElement和
MediaTimeline.. 390

14.2  视频..... 392

14.2.1  控制MediaElement的外观..... 392

14.2.2  控制媒体..... 394

14.3  语音..... 397

14.3.1  语音合成..... 397

14.3.2  语音识别..... 400

14.4  文档..... 403

14.4.1  创建流文档..... 403

14.4.2  显示流文档..... 412

14.4.3  添加注释..... 414

14.5  小结..... 417

第五部分 高级主题

第15章 与Win32、Windows Form
以及ActiveX之间的互用性...... 420

15.1  在WPF应用程序中嵌入Win32控件..... 421

15.1.1  一个Win32 Webcam控件..... 422

15.1.2 在WPF里使用Webcam控件..... 425

15.1.3 支持键盘导航..... 430

15.2 在Win32程序里嵌入WPF控件..... 434

15.2.1 HwndSource.. 434

15.2.2 获得正确的布局..... 437

15.3  在WPF应用程序中嵌入Windows
Forms控件..... 440

15.3.1 用程序代码嵌入一个
PropertyGrid.. 440

15.3.2 用XAML来嵌入一个
PropertyGrid.. 442

15.4 在Windows Forms应用程序里嵌入
WPF控件..... 443

15.5 在WPF应用程序中嵌入ActiveX控件..... 447

15.6 小结..... 450

第16章 用户控件和自定义控件...... 452

16.1  创建用户控件..... 453

16.1.1  创建用户界面..... 453

16.1.2  创建行为..... 455

16.1.3  添加依赖属性..... 458

16.1.4  添加路由事件..... 460

16.2  创建自定义控件..... 461

16.2.1  创建行为..... 462

16.2.2  创建用户界面..... 467

16.2.3  对更复杂控件的思考..... 470

16.3  小结..... 473

第17章 使用自定义面板做布局...... 474

17.1  面板与其子元素的通信..... 474

17.1.1  检测步骤..... 474

17.1.2  排列步骤..... 476

17.2  创建Office 2007风格的
RibbonPanel.. 477

17.2.1  RibbonPanel的行为..... 477

17.2.2  RibbonPanel实现..... 478

17.3  小结..... 481

第六部分 附  录

附录 有用的工具...... 484