《WPF编程宝典 C#2010版》PDF下载

  • 购买积分:24 如何计算积分?
  • 作  者:(美)麦克唐纳著;王德才译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302252696
  • 页数:918 页
图书介绍:本书透彻讲解WPF和XAML编程知识,讨论常见的图形界面编程技术,而且对WPF中非常有特色的文档、打印、音频、视频等内容做了深入分析。

第1章WPF概述 1

1.1 Windows图形演化 1

1.1.1 DirectX:新的图形引擎 2

1.1.2硬件加速与WPF 2

1.2 WPF:高级API 4

1.2.1 Windows窗体将继续保留 5

1.2.2 DirectX也将继续保留 5

1.2.3 Silverlight 5

1.3分辨率无关性 6

1.3.1 WPF单位 7

1.3.2系统DPI 8

1.3.3位图和矢量图形 10

1.4 WPF体系结构 11

1.5 WPF4 15

1.5.1新特性 15

1.5.2 WPF工具包 16

1.5.3 Visual Studio 2010 16

1.6小结 18

第2章XAML 21

2.1理解XAML 21

2.1.1 WPF之前的图形用户界面 22

2.1.2 XAML变体 23

2.1.3 XAML编译 23

2.2 XAML基础 24

2.2.1 XAML名称空间 25

2.2.2代码隐藏类 26

2.3 XAML中的属性和事件 29

2.3.1简单属性与类型转换器 30

2.3.2复杂属性 31

2.3.3标记扩展 33

2.3.4附加属性 33

2.3.5嵌套元素 35

2.3.6特殊字符与空白 37

2.3.7事件 39

2.3.8完整的Eight Ball示例 40

2.4使用其他名称空间中的类型 41

2.5加载和编译XAML 43

2.5.1只使用代码 43

2.5.2使用代码和未经编译的XAML 45

2.5.3使用代码和编译过的XAML 47

2.5.4只使用XAML 48

2.6 XAML 2009 49

2.6.1自动事件连接 50

2.6.2引用 51

2.6.3内置类型 51

2.6.4高级的对象创建 52

2.7小结 53

第3章 布局 55

3.1理解WPF中的布局 55

3.1.1 WPF布局原则 56

3.1.2布局过程 57

3.1.3布局容器 57

3.2使用StackPanel面板进行简单布局 59

3.2.1布局属性 60

3.2.2对齐方式 61

3.2.3边距 62

3.2.4最小尺寸、最大尺寸以及显式地设置尺寸 63

3.2.5 Border控件 65

3.3 WrapPanel面板和DockPanel面板 66

3.3.1 WrapPanel面板 66

3.3.2 DockPanel面板 67

3.3.3嵌套布局容器 68

3.4 Grid面板 70

3.4.1调整行和列 72

3.4.2布局舍入 74

3.4.3跨越行和列 74

3.4.4分割窗口 75

3.4.5共享尺寸组 79

3.4.6 UniformGrid面板 81

3.5使用Canvas面板进行基于坐标的布局 82

3.5.1 Z顺序 83

3.5.2 1nkCanvas元素 83

3.6布局示例 86

3.6.1列设置 86

3.6.2动态内容 87

3.6.3组合式用户界面 88

3.7小结 90

第4章 依赖项属性 91

4.1理解依赖项属性 91

4.1.1定义依赖项属性 92

4.1.2注册依赖项属性 92

4.1.3添加属性包装器 94

4.1.4 WPF使用依赖项属性的方式 95

4.1.5共享的依赖项属性 96

4.1.6附加的依赖项属性 96

4.2属性验证 98

4.2.1验证回调 98

4.2.2强制回调 99

4.3小结 101

第5章 路由事件 103

5.1理解路由事件 103

5.1.1定义、注册和包装路由事件 104

5.1.2共享路由事件 104

5.1.3引发路由事件 105

5.1.4处理路由事件 105

5.2事件路由 107

5.2.1 RoutedEventArgs类 108

5.2.2冒泡路由事件 109

5.2.3处理挂起的事件 111

5.2.4附加事件 111

5.2.5隧道路由事件 113

5.3 WPF事件 114

5.3.1生命周期事件 115

5.3.2输入事件 116

5.4键盘输入 117

5.4.1处理按键事件 118

5.4.2焦点 120

5.4.3获取键盘状态 121

5.5鼠标输入 122

5.5.1鼠标单击 123

5.5.2捕获鼠标 124

5.5.3鼠标拖放 125

5.6多点触控输入 127

5.6.1多点触控的输入层次 127

5.6.2原始触控 128

5.6.3操作 130

5.6.4惯性 133

5.7小结 134

第6章 控件 135

6.1控件类 136

6.1.1背景画刷和前景画刷 136

6.1.2字体 138

6.1.3鼠标光标 143

6.2内容控件 144

6.2.1 Content属性 145

6.2.2对齐内容 147

6.2.3 WPF内容原则 148

6.2.4标签 148

6.2.5按钮 149

6.2.6工具提示 152

6.3特殊容器控件 158

6.4带标题的内容控件 161

6.4.1 GroupBox 161

6.4.2 Tabltem 162

6.4.3 Expander 163

6.5文本控件 165

6.5.1多行文本 166

6.5.2选择文本 167

6.5.3拼写检查 167

6.5.4 PasswordBox 169

6.6 列表控件 170

6.6.1 ListBox 170

6.6.2 ComboBox 173

6.7基于范围的控件 173

6.7.1 Slider控件 174

6.7.2进度条 175

6.8日期控件 176

6.9小结 178

第7章Application类 179

7.1应用程序的生命周期 179

7.1.1创建Application对象 180

7.1.2派生一个自定义的Application类 181

7.1.3应用程序的关闭方式 182

7.1.4应用程序事件 183

7.2 Application类的任务 185

7.2.1显示初始界面 185

7.2.2处理命令行参数 186

7.2.3访问当前Application对象 187

7.2.4在窗口之间进行交互 188

7.2.5单实例应用程序 190

7.3程序集资源 195

7.3.1添加资源 195

7.3.2检索资源 196

7.3.3 pack URI 198

7.3.4内容文件 199

7.4本地化 200

7.4.1构建能够本地化的用户界面 200

7.4.2使应用程序为本地化做好准备 201

7.4.3翻译过程 202

7.5小结 207

第8章 元素绑定 209

8.1将元素绑定到一起 209

8.1.1绑定表达式 210

8.1.2绑定错误 211

8.1.3绑定模式 211

8.1.4使用代码创建绑定 213

8.1.5多绑定 214

8.1.6绑定更新 217

8.2绑定到非元素对象 218

8.2.1 Source属性 218

8.2.2 RelativeSource属性 219

8.2.3 DataContext属性 220

8.3小结 221

第9章 命令 223

9.1理解命令 223

9.2 WPF命令模型 224

9.2.1 lCommand接口 225

9.2.2 RoutedCommand类 225

9.2.3 RoutedUlCommand类 226

9.2.4命令库 227

9.3执行命令 228

9.3.1命令源 228

9.3.2命令绑定 229

9.3.3使用多命令源 231

9.3.4微调命令文本 232

9.3.5直接调用命令 232

9.3.6禁用命令 233

9.3.7具有内置命令的控件 235

9.4高级命令 237

9.4.1自定义命令 237

9.4.2在不同的位置使用相同的命令 238

9.4.3使用命令参数 240

9.4.4跟踪和翻转命令 241

9.5小结 245

第10章 资源 247

10.1资源基础 247

10.1.1资源集合 247

10.1.2资源的层次 249

10.1.3静态资源和动态资源 250

10.1.4非共享资源 251

10.1.5通过代码访问资源 251

10.1.6应用程序资源 252

10.1.7系统资源 253

10.2资源字典 254

10.2.1创建资源字典 254

10.2.2使用资源字典 254

10.2.3在程序集之间共享资源 255

10.3小结 258

第11章 样式和行为 259

11.1样式基础 259

11.1.1创建样式对象 262

11.1.2设置属性 263

11.1.3关联事件处理程序 264

11.1.4多层样式 266

11.1.5通过类型自动应用样式 267

11.2触发器 268

11.2.1简单触发器 268

11.2.2事件触发器 270

11.3行为 272

11.3.1获取行为支持 272

11.3.2理解行为模型 273

11.3.3创建行为 273

11.3.4使用行为 275

11.3.5 Blend中的设计时行为支持 276

11.4小结 277

第12章 形状、画刷和变换 279

12.1理解形状 279

12.1.1 Shape类 280

12.1.2矩形和椭圆 282

12.1.3改变形状的尺寸和放置形状 283

12.1.4使用Viewbox控件缩放形状 284

12.1.5直线 287

12.1.6折线 288

12.1.7多边形 288

12.1.8直线线帽和直线交点 290

12.1.9点划线 291

12.1.10像素对齐 292

12.2画刷 293

12.2.1 SolidColorBsh画刷 294

12.2.2 LinearGradientBsh画刷 294

12.2.3 RadialGradientBsh画刷 296

12.2.4 ImageBsh画刷 297

12.2.5平铺的ImageBsh画刷 299

12.2.6 VisualBrush画刷 301

12.2.7 BitmapCacheBrush画刷 302

12.3变换 303

12.3.1变换形状 304

12.3.2变换元素 306

12.4透明 307

12.4.1使用元素半透明 307

12.4.2透明掩码 308

12.5小结 310

第13章 几何图形和图画 311

13.1路径和几何图形 311

13.1.1直线、矩形和椭圆图形 312

13.1.2使用GeometGroup组合形状 313

13.1.3使用CombinedGeomet融合几何图形 315

13.1.4使用PathGeomet绘制曲线和直线 317

13.1.5微语言几何图形 321

13.1.6使用几何图形进行剪裁 323

13.2图画 324

13.2.1显示图画 326

13.2.2导出插图 328

13.3小结 329

第14章 效果和可视化对象 331

14.1可视化对象 331

14.1.1绘制可视化对象 332

14.1.2在元素中包装可视化对象 334

14.1.3命中测试 336

14.1.4复杂的命中测试 338

14.2效果 341

14.2.1 BlurEect类 342

14.2.2 DropShadowEect类 343

14.2.3 ShaderEect类 344

14.3 WteableBitmap类 345

14.3.1生成位图 346

14.3.2写入WriteableBitmap对象 347

14.3.3更高效的像素写入 348

14.4小结 350

第15章 动画基础 351

15.1理解WPF动画 351

15.1.1基于时间的动画 352

15.1.2基于属性的动画 353

15.2基本动画 353

15.2.1 Animation类 354

15.2.2使用代码创建动画 356

15.2.3同时发生的动画 360

15.2.4动画生命期 360

15.2.5 Timeline类 361

15.3故事板 364

15.3.1故事板 365

15.3.2事件触发器 365

15.3.3重叠动画 368

15.3.4同步的动画 368

15.3.5控制播放 369

15.3.6监视动画进度 373

15.4动画缓动 375

15.4.1使用缓动函数 375

15.4.2在动画开始时应用缓动与在动画结束时应用缓动 376

15.4.3缓动函数类 377

15.4.4创建自定义缓动函数 379

15.5动画性能 381

15.5.1期望的帧速率 382

15.5.2位图缓存 383

15.6小结 385

第16章 高级动画 387

16.1动画类型回顾 387

16.1.1动态变换 388

16.1.2动态改变画刷 391

16.1.3动态改变像素着色器 394

16.2关键帧动画 395

16.2.1离散的关键帧动画 397

16.2.2缓动关键帧 397

16.2.3样条关键帧动画 398

16.3基于路径的动画 399

16.4基于帧的动画 401

16.5使用代码创建故事板 404

16.5.1主窗口 405

16.5.2 Bomb用户控件 406

16.5.3投炸弹 407

16.5.4拦截炸弹 410

16.5.5统计炸弹和清理工作 412

16.6小结 413

第17章 控件模板 415

17.1理解逻辑树和可视化树 416

17.2理解模板 420

17.2.1修饰类 422

17.2.2剖析控件 423

17.3创建控件模板 426

17.3.1简单按钮 426

17.3.2模板绑定 428

17.3.3改变属性的触发器 429

17.3.4使用动画的触发器 431

17.4组织模板资源 433

17.4.1分解按钮控件模板 433

17.4.2通过样式应用模板 435

17.4.3自动应用模板 437

17.4.4由用户选择的皮肤 438

17.5构建更复杂的模板 440

17.5.1嵌套的模板 440

17.5.2修改滚动条 443

17.5.3控件模板示例 447

17.6可视化状态 448

17.7小结 449

第18章 自定义元素 451

18.1理解WPF中的自定义元素 452

18.2构建基本的用户控件 454

18.2.1定义依赖项属性 455

18.2.2定义路由事件 457

18.2.3添加标记 458

18.2.4使用控件 460

18.2.5命令支持 460

18.2.6深入分析用户控件 463

18.3创建无外观控件 464

18.3.1修改颜色拾取器的代码 464

18.3.2修改颜色拾取器的标记 465

18.3.3精简控件模板 467

18.3.4特定主题样式和默认样式 469

18.4支持可视化状态 471

18.4.1开始编写FlipPanel类 472

18.4.2选择部件和状态 474

18.4.3默认控件模板 475

18.4.4 使用FlipPanel 481

18.4.5使用不同的控件模板 482

18.5自定义面板 483

18.5.1两步布局过程 484

18.5.2 Canvas面板克隆 486

18.5.3更好的换行面板 487

18.6自定义绘图元素 490

18.6.1 OnRender()方法 491

18.6.2评估自定义绘图 492

18.6.3自定义绘图元素 493

18.6.4自定义装饰元素 495

18.7小结 496

第19章 数据绑定 497

19.1使用自定义对象绑定到数据库 497

19.1.1构建数据访问组件 498

19.1.2构建数据对象 500

19.1.3显示绑定对象 501

19.1.4更新数据库 503

19.1.5更改通知 504

19.2绑定到对象集合 505

19.2.1显示和编辑集合项 506

19.2.2插入和移除集合项 509

19.2.3绑定到ADONET对象 510

19.2.4绑定到LINQ表达式 511

19.3提高大列表的性能 513

19.3.1虚拟化 513

19.3.2项目容器再循环 515

19.3.3延迟滚动 515

19.4验证 515

19.4.1在数据对象中进行验证 516

19.4.2自定义验证规则 519

19.4.3响应验证错误 521

19.4.4获取错误列表 522

19.4.5显示不同的错误指示符号 523

19.4.6验证多个值 525

19.5数据提供者 528

19.5.1 ObjectDataProvider 529

19.5.2 XmlDataProvider 531

19.6小结 533

第20章 格式化绑定的数据 535

20.1数据绑定回顾 535

20.2数据转换 536

20.2.1 StringFormat属性 537

20.2.2值转换器简介 539

20.2.3使用值转换器设置字符串的格式 539

20.2.4使用值转换器创建对象 541

20.2.5应用条件格式化 543

20.2.6评估多个属性 545

20.3列表控件 546

20.4列表样式 548

20.4.1 ItemContainerSle 548

20.4.2包含复选框或单选按钮的ListBox控件 549

20.4.3交替条目样式 552

20.4.4样式选择器 553

20.5数据模板 556

20.5.1分离和重用模板 558

20.5.2更高级的模板 559

20.5.3改变模板 561

20.5.4模板选择器 562

20.5.5模板与选择 564

20.5.6改变条目布局 568

20.6 ComboBox控件 570

20.7小结 573

第21章 数据视图 575

21.1 View对象 575

21.1.1检索视图对象 576

21.1.2视图导航 576

21.1.3以声明方式创建视图 579

21.2过滤、排序与分组 580

21.2.1过滤集合 580

21.2.2过滤DataTable对象 583

21.2.3排序 584

21.2.4分组 585

21.3小结 589

第22章 列表、网格和树 591

22.1 ListView控件 591

22.1.1使用GirdView创建列 592

22.1.2创建自定义视图 596

22.2 TreeView 603

22.2.1使用数据绑定的TreeView 604

22.2.2将DataSet对象绑定到TreeView 606

22.2.3即时创建节点 607

22.3 DataGrid 610

22.3.1改变列的尺寸与重新安排列 612

22.3.2定义列 613

22.3.3设置列的格式和样式 617

22.3.4设置行的格式 618

22.3.5行细节 620

22.3.6冻结列 621

22.3.7选择 621

22.3.8排序 622

22.3.9 DateGrid编辑 622

22.4小结 624

第23章 窗口 625

23.1 Window类 625

23.1.1显示窗口 627

23.1.2定位窗口 628

23.1.3保存和还原窗口位置 629

23.2窗口交互 631

23.2.1窗口所有权 632

23.2.2对话框模型 633

23.2.3通用对话框 634

23.3非矩形窗口 635

23.3.1简单形状窗口 635

23.3.2具有形状内容的透明窗口 637

23.3.3移动形状窗口 639

23.3.4改变形状窗口的尺寸 639

23.3.5组合到一起:窗口的自定义控件模板 641

23.4 Aero玻璃效果 644

23.5 Windows7任务栏编程 648

23.5.1使用跳转列表 649

23.5.2改变任务栏图标和预览 653

23.6小结 658

第24章 页面和导航 659

24.1理解基于页面的导航 659

24.2基于页面的界面 660

24.2.1一个具有导航窗口的基于页面的简单应用程序 661

24.2.2 Page类 662

24.2.3超链接 663

24.2.4在一个框架中驻留页面 665

24.2.5在另一个页面中驻留页面 666

24.2.6在Web浏览器中驻留页面 668

24.3页面历史 668

24.3.1深入分析WPF中的URI 668

24.3.2导航历史 669

24.3.3维护自定义的属性 670

24.4导航服务 671

24.4.1通过编程进行导航 672

24.4.2导航事件 673

24.4.3管理日志 673

24.4.4向日志添加自定义项 675

24.4.5页函数 678

24.5 XAML浏览器应用程序 681

24.5.1 XBAP的运行要求 682

24.5.2创建XBAP 682

24.5.3部署XBAP 683

24.5.4更新XBAP 685

24.5.5 XBAP的安全性 685

24.5.6完全信任的XBAP 686

24.5.7组合XBAP/独立应用程序 687

24.5.8为不同的安全级别编写代码 687

24.5.9在网页中嵌入XBAP 692

24.6 WebBrowser控件 692

24.6.1导航到页面 693

24.6.2构建DOM树 694

24.6.3使用NET代码为网页添加脚本 696

24.7小结 698

第25章 菜单、工具栏和功能区 699

25.1菜单 699

25.1.1 Menu类 699

25.1.2菜单项 700

25.1.3 ContextMenu类 702

25.1.4菜单分隔条 702

25.2工具栏和状态栏 703

25.2.1 ToolBar控件 703

25.2.2 StatusBar控件 707

25.3功能区 708

25.3.1添加功能区 708

25.3.2设置功能区样式 709

25.3.3命令 710

25.3.4应用程序菜单 711

25.3.5选项卡、组与按钮 713

25.3.6改变功能区尺寸 716

25.3.7快速访问工具栏 718

25.4小结 719

第26章 声音和视频 721

26.1播放WAV音频 721

26.1.1 SoundPlayer类 722

26.1.2 SoundPlayerAction类 723

26.1.3系统声音 724

26.2 MediaPlayer类 724

26.3 MediaElement类 726

26.3.1使用代码播放音频 726

26.3.2处理错误 727

26.3.3使用触发器播放音频 727

26.3.4播放多个声音 729

26.3.5改变音量、平衡、速度以及位置 730

26.3.6将动画同步到音频 732

26.3.7播放视频 733

26.3.8视频效果 734

26.4语音 737

26.4.1语音合成 737

26.4.2语音识别 739

26.5小结 740

第27章3D绘图 741

27.1 3D绘图基础 741

27.1.1视口 742

27.1.2 3D对象 742

27.1.3摄像机 749

27.2深入研究3D绘图 753

27.2.1着色和法线 754

27.2.2更复杂的形状 757

27.2.3 Model3DGroup集合 758

27.2.4使用材质 759

27.2.5纹理映射 761

27.3交互和动画 764

27.3.1变换 765

27.3.2旋转 766

27.3.3飞过 767

27.3.4跟踪球 768

27.3.5命中测试 770

27.3.6 3D表面上的2D元素 774

27.4小结 776

第28章 文档 779

28.1理解文档 779

28.2流文档 780

28.2.1流内容元素 781

28.2.2设置内容元素的格式 782

28.2.3创建简单的流文档 784

28.2.4块元素 785

28.2.5内联元素 790

28.2.6通过代码与元素进行交互 795

28.2.7文本对齐 798

28.3只读流文档容器 799

28.3.1缩放 800

28.3.2页面和列 801

28.3.3从文件加载文档 803

28.3.4打印 804

28.4编辑流文档 804

28.4.1加载文件 805

28.4.2保存文件 807

28.4.3设置所选文本的格式 808

28.4.4获取单个单词 810

28.5固定文档 811

28.6批注 812

28.6.1批注类 813

28.6.2启用批注服务 813

28.6.3创建批注 814

28.6.4检查批注 817

28.6.5响应批注更改 820

28.6.6在固定文档中保存批注 820

28.6.7自定义便笺外观 821

28.7小结 822

第29章 打印 823

29.1基本打印 823

29.1.1打印元素 824

29.1.2变换打印输出 826

29.1.3打印不显示的元素 828

29.1.4打印文档 829

29.1.5在文档打印输出中控制页面 832

29.2自定义打印 834

29.2.1使用可视化层中的类进行打印 834

29.2.2自定义多页打印 837

29.3打印设置和管理 842

29.3.1保存打印设置 842

29.3.2打印页面范围 843

29.3.3管理打印队列 843

29.4通过XPS进行打印 846

29.4.1为打印预览创建XPS文档 847

29.4.2写入内存中的XPS文档 847

29.4.3通过XPS直接打印到打印机 848

29.4.4异步打印 849

29.5小结 849

第30章与Windows窗体的交互 851

30.1访问互操作性 851

30.2混合窗口和窗体 853

30.2.1为WPF应用程序添加窗体 854

30.2.2为Windows窗体应用程序添加WPF窗口 854

30.2.3显示模态窗口和窗体 854

30.2.4显示非模态窗口和窗体 855

30.2.5 Windows窗体控件的可视化风格 856

30.2.6不需要互操作性的Windows窗体类 856

30.3创建具有混合内容的窗口 860

30.3.1 WPF和Windows窗体“空域” 860

30.3.2在WPF中驻留Windows窗体控件 861

30.3.3 WPF和Windows窗体用户控件 864

30.3.4在Windows窗体中驻留WPF控件 864

30.3.5访问键、助记码和焦点 866

30.3.6属性映射 867

30.4小结 869

第31章 多线程 871

31.1多线程 871

31.1.1 Dispatcher类 872

31.1.2 DispatcherObject类 872

31.1.3 BackgroundWorker类 875

31.2小结 881

第32章 插件模型 883

32.1在MAF和MEF两者间进行选择 883

32.2插件管道 884

32.2.1管道的工作原理 885

32.2.2插件文件夹结构 886

32.2.3为使用插件模型准备解决方案 887

32.3使用插件的应用程序 888

32.3.1协定 889

32.3.2插件视图 889

32.3.3插件 890

32.3.4插件适配器 890

32.3.5宿主视图 891

32.3.6宿主适配器 891

32.3.7宿主 892

32.3.8添加更多插件 895

32.4与宿主进行交互 895

32.5可视化插件 900

32.6小结 902

第33章ClickOnce部署 903

33.1理解应用程序部署 903

33.1.1 ClickOnce安装模型 905

33.1.2 ClickOnce的局限 905

33.2简单的C1ickOnce发布 906

33.2.1设置发布者和产品 907

33.2.2启动发布向导 908

33.2.3部署文件的结构 912

33.2.4安装ClickOnce应用程序 913

33.2.5更新ClickOnce应用程序 914

33.3 C1ickOnce附加选项 914

33.3.1发布版本 914

33.3.2更新 915

33.3.3文件关联 916

33.3.4发布选项 917

33.4小结 918