WPF 编程宝典 : 使用 C# 2012 和 .NET 4.5

0
(0)

WPF 编程宝典
: 使用 C# 2012 和 .NET 4.5

作者:MatthewMacDonald

出版社:清华大学出版社

副标题:使用C#2012和.NET4.5

原作名:ProWPF4.5inC#

译者:王德才

出版年:2013-8-1

页数:932

定价:128

装帧:平装

ISBN:9787302327738

目录
······

第Ⅰ部分 基础知识

第1章 WPF概述 3

1.1 Windows图形演化 3

1.1.1 DirectX:新的图形引擎 4

1.1.2 硬件加速与WPF 4

1.2 WPF:高级API 4

1.3 分辨率无关性 5

1.3.1 WPF单位 6

1.3.2 系统DPI 7

1.3.3 位图和矢量图形 9

1.4 WPF体系结构 10

1.5 WPF 4.5 13

1.5.1 WPF工具包 14

1.5.2 Visual Studio 2012 14

1.6 小结 16

第2章 XAML 17

2.1 理解XAML 17

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

2.1.2 XAML变体 19

2.1.3 XAML编译 19

2.2 XAML基础 20

2.2.1 XAML名称空间 21

2.2.2 代码隐藏类 22

2.3 XAML中的属性和事件 24

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

2.3.2 复杂属性 26

2.3.3 标记扩展 28

2.3.4 附加属性 29

2.3.5 嵌套元素 30

2.3.6 特殊字符与空白 32

2.3.7 事件 34

2.3.8 完整的Eight Ball Answer示例 35

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

2.5 加载和编译XAML 38

2.5.1 只使用代码 38

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

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

2.5.4 只使用XAML 44

2.6 小结 45

第3章 布局 47

3.1 理解WPF中的布局 47

3.1.1 WPF布局原则 47

3.1.2 布局过程 48

3.1.3 布局容器 48

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

3.2.1 布局属性 52

3.2.2 对齐方式 52

3.2.3 边距 53

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

3.2.5 Border控件 56

3.3 WrapPanel和DockPanel面板 57

3.3.1 WrapPanel面板 57

3.3.2 DockPanel面板 58

3.3.3 嵌套布局容器 59

3.4 Grid面板 60

3.4.1 调整行和列 63

3.4.2 布局舍入 64

3.4.3 跨越行和列 65

3.4.4 分割窗口 66

3.4.5 共享尺寸组 69

3.4.6 UniformGrid面板 72

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

3.5.1 Z顺序 73

3.5.2 lnkCanvas元素 74

3.6 布局示例 76

3.6.1 列设置 76

3.6.2 动态内容 77

3.6.3 组合式用户界面 79

3.7 小结 80

第4章 依赖项属性 83

4.1 理解依赖项属性 83

4.1.1 定义依赖项属性 84

4.1.2 注册依赖项属性 84

4.1.3 添加属性包装器 86

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

4.1.5 共享的依赖项属性 88

4.1.6 附加的依赖项属性 88

4.2 属性验证 90

4.2.1 验证回调 90

4.2.2 强制回调 91

4.3 小结 93

第5章 路由事件 95

5.1 理解路由事件 95

5.1.1 定义、注册和封装路由事件 95

5.1.2 共享路由事件 96

5.1.3 引发路由事件 96

5.1.4 处理路由事件 97

5.2 事件路由 99

5.2.1 RoutedEventArgs类 100

5.2.2 冒泡路由事件 100

5.2.3 处理挂起的事件 103

5.2.4 附加事件 103

5.2.5 隧道路由事件 105

5.3 WPF事件 106

5.3.1 生命周期事件 106

5.3.2 输入事件 108

5.4 键盘输入 108

5.4.1 处理按键事件 109

5.4.2 焦点 111

5.4.3 获取键盘状态 112

5.5 鼠标输入 113

5.5.1 鼠标单击 115

5.5.2 捕获鼠标 115

5.5.3 鼠标拖放 116

5.6 多点触控输入 118

5.6.1 多点触控的输入层次 119

5.6.2 原始触控 119

5.6.3 操作 122

5.6.4 惯性 124

5.7 小结 125

第Ⅱ部分 进一步研究WPF

第6章 控件 129

6.1 控件类 129

6.1.1 背景画刷和前景画刷 130

6.1.2 字体 132

6.1.3 鼠标光标 136

6.2 内容控件 137

6.2.1 Content属性 138

6.2.2 对齐内容 140

6.2.3 WPF内容原则 141

6.2.4 标签 142

6.2.5 按钮 142

6.2.6 工具提示 145

6.3 特殊容器 151

6.3.1 ScrollViewer 152

6.3.2 GroupBox 154

6.3.3 TabItem 154

6.3.4 Expander 155

6.4 文本控件 158

6.4.1 多行文本 158

6.4.2 选择文本 159

6.4.3 拼写检查 160

6.4.4 PasswordBox 162

6.5 列表控件 162

6.5.1 ListBox 163

6.5.2 ComboBox 166

6.6 基于范围的控件 166

6.6.1 Slider 167

6.6.2 ProgressBar 168

6.7 日期控件 169

6.8 小结 171

第7章 Application类 173

7.1 应用程序的生命周期 173

7.1.1 创建Application对象 173

7.1.2 派生自定义的Application类 174

7.1.3 应用程序的关闭方式 176

7.1.4 应用程序事件 177

7.2 Application类的任务 179

7.2.1 显示初始界面 179

7.2.2 处理命令行参数 180

7.2.3 访问当前Application对象 181

7.2.4 在窗口之间进行交互 182

7.2.5 单实例应用程序 184

7.3 程序集资源 189

7.3.1 添加资源 189

7.3.2 检索资源 190

7.3.3 pack URI 192

7.3.4 内容文件 193

7.4 本地化 193

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

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

7.4.3 管理翻译过程 195

7.5 小结 200

第8章 元素绑定 201

8.1 将元素绑定到一起 201

8.1.1 绑定表达式 202

8.1.2 绑定错误 203

8.1.3 绑定模式 203

8.1.4 使用代码创建绑定 205

8.1.5 使用代码检索绑定 206

8.1.6 多绑定 207

8.1.7 绑定更新 210

8.1.8 绑定延迟 211

8.2 绑定到非元素对象 211

8.2.1 Source属性 212

8.2.2 RelativeSource属性 212

8.2.3 DataContext属性 213

8.3 小结 214

第9章 命令 215

9.1 理解命令 215

9.2 WPF命令模型 216

9.2.1 ICommand接口 217

9.2.2 RoutedCommand类 217

9.2.3 RoutedUICommand类 218

9.2.4 命令库 219

9.3 执行命令 220

9.3.1 命令源 220

9.3.2 命令绑定 221

9.3.3 使用多命令源 223

9.3.4 微调命令文本 224

9.3.5 直接调用命令 224

9.3.6 禁用命令 225

9.3.7 具有内置命令的控件 227

9.4 高级命令 229

9.4.1 自定义命令 229

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

9.4.3 使用命令参数 232

9.4.4 跟踪和翻转命令 233

9.5 小结 237

第10章 资源 239

10.1 资源基础 239

10.1.1 资源集合 239

10.1.2 资源的层次 241

10.1.3 静态资源和动态资源 242

10.1.4 非共享资源 243

10.1.5 通过代码访问资源 244

10.1.6 应用程序资源 244

10.1.7 系统资源 245

10.2 资源字典 246

10.2.1 创建资源字典 246

10.2.2 使用资源字典 247

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

10.3 小结 251

第11章 样式和行为 253

11.1 样式基础 253

11.1.1 创建样式对象 256

11.1.2 设置属性 257

11.1.3 关联事件处理程序 258

11.1.4 多层样式 259

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

11.2 触发器 262

11.2.1 简单触发器 262

11.2.2 事件触发器 264

11.3 行为 266

11.3.1 获取行为支持 266

11.3.2 理解行为模型 267

11.3.3 创建行为 268

11.3.4 使用行为 270

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

11.4 小结 271

第Ⅲ部分 图画和动画

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

12.1 理解形状 275

12.1.1 Shape类 276

12.1.2 矩形和椭圆 277

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

12.1.4 使用Viewbox控件缩放形状 280

12.1.5 直线 282

12.1.6 折线 283

12.1.7 多边形 284

12.1.8 直线线帽和直线交点 286

12.1.9 点划线 287

12.1.10 像素对齐 288

12.2 画刷 289

12.2.1 SolidColorBrush画刷 290

12.2.2 LinearGradientBrush画刷 290

12.2.3 RadialGradientBrush画刷 292

12.2.4 ImageBrush画刷 294

12.2.5 平铺的ImageBrush画刷 295

12.2.6 VisualBrush画刷 297

12.2.7 BitmapCacheBrush画刷 298

12.3 变换 299

12.3.1 变换形状 300

12.3.2 变换元素 302

12.4 透明 303

12.4.1 使元素半透明 303

12.4.2 透明掩码 304

12.5 小结 306

第13章 几何图形和图画 307

13.1 路径和几何图形 307

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

13.1.2 使用GeometryGroup组合形状 309

13.1.3 使用CombinedGeometry融合几何图形 311

13.1.4 使用PathGeometry绘制曲线和直线 313

13.1.5 微语言几何图形 318

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

13.2 图画 320

13.2.1 显示图画 322

13.2.2 导出插图 324

13.3 小结 326

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

14.1 可视化对象 327

14.1.1 绘制可视化对象 328

14.1.2 在元素中封装可视化对象 329

14.1.3 命中测试 332

14.1.4 复杂的命中测试 334

14.2 效果 338

14.2.1 BlurEffect类 338

14.2.2 DropShadowEffect类 339

14.2.3 ShaderEffect类 340

14.3 WriteableBitmap类 342

14.3.1 生成位图 342

14.3.2 写入WriteableBitmap对象 343

14.3.3 更高效的像素写入 345

14.4 小结 347

第15章 动画基础 349

15.1 理解WPF动画 349

15.1.1 基于时间的动画 349

15.1.2 基于属性的动画 350

15.2 基本动画 351

15.2.1 Animation类 351

15.2.2 使用代码创建动画 353

15.2.3 同时发生的动画 358

15.2.4 动画的生命周期 358

15.2.5 Timeline类 359

15.3 故事板 362

15.3.1 故事板 363

15.3.2 事件触发器 363

15.3.3 重叠动画 366

15.3.4 同步的动画 367

15.3.5 控制播放 367

15.3.6 监视动画进度 371

15.4 动画缓动 373

15.4.1 使用缓动函数 373

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

15.4.3 缓动函数类 375

15.4.4 创建自定义缓动函数 377

15.5 动画性能 379

15.5.1 期望的帧率 380

15.5.2 位图缓存 382

15.6 小结 384

第16章 高级动画 385

16.1 动画类型回顾 385

16.1.1 动态变换 386

16.1.2 动态改变画刷 390

16.1.3 动态改变像素着色器 392

16.2 关键帧动画 393

16.2.1 离散的关键帧动画 395

16.2.2 缓动关键帧 395

16.2.3 样条关键帧动画 396

16.3 基于路径的动画 397

16.4 基于帧的动画 399

16.5 使用代码创建故事板 402

16.5.1 创建主窗口 403

16.5.2 创建Bomb用户控件 405

16.5.3 投弹 406

16.5.4 拦截炸弹 409

16.5.5 统计炸弹和清理工作 410

16.6 小结 412

第Ⅳ部分 模板和自定义元素

第17章 控件模板 417

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

17.2 理解模板 422

17.2.1 修饰类 424

17.2.2 剖析控件 426

17.3 创建控件模板 428

17.3.1 简单按钮 429

17.3.2 模板绑定 430

17.3.3 改变属性的触发器 431

17.3.4 使用动画的触发器 434

17.4 组织模板资源 435

17.4.1 分解按钮控件模板 436

17.4.2 通过样式应用模板 438

17.4.3 自动应用模板 439

17.4.4 由用户选择的皮肤 440

17.5 构建更复杂的模板 442

17.5.1 嵌套的模板 443

17.5.2 修改滚动条 445

17.5.3 控件模板示例 450

17.6 可视化状态 451

17.7 小结 452

第18章 自定义元素 453

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

18.2 构建基本的用户控件 456

18.2.1 定义依赖项属性 456

18.2.2 定义路由事件 459

18.2.3 添加标记 460

18.2.4 使用控件 462

18.2.5 命令支持 462

18.2.6 深入分析用户控件 465

18.3 创建无外观控件 466

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

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

18.3.3 精简控件模板 469

18.4 支持可视化状态 472

18.4.1 开始编写FlipPanel类 473

18.4.2 选择部件和状态 475

18.4.3 默认控件模板 476

18.4.4 使用FlipPanel控件 482

18.4.5 使用不同的控件模板 483

18.5 创建自定义面板 485

18.5.1 两步布局过程 485

18.5.2 Canvas面板的副本 488

18.5.3 更好的WrapPanel面板 489

18.6 自定义绘图元素 492

18.6.1 OnRender( )方法 493

18.6.2 评估自定义绘图 494

18.6.3 自定义绘图元素 495

18.6.4 创建自定义装饰元素 497

18.7 小结 498

第Ⅴ部分 数据

第19章 数据绑定 501

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

19.1.1 构建数据访问组件 502

19.1.2 构建数据对象 504

19.1.3 显示绑定对象 505

19.1.4 更新数据库 508

19.1.5 更改通知 508

19.2 绑定到对象集合 510

19.2.1 显示和编辑集合项 510

19.2.2 插入和移除集合项 513

19.2.3 绑定到ADO.NET对象 514

19.2.4 绑定到LINQ表达式 515

19.3 提高大列表的性能 518

19.3.1 虚拟化 518

19.3.2 项容器再循环 519

19.3.3 缓存长度 519

19.3.4 延迟滚动 520

19.4 验证 521

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

19.4.2 自定义验证规则 526

19.4.3 响应验证错误 528

19.4.4 获取错误列表 529

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

19.4.6 验证多个值 533

19.5 数据提供者 535

19.5.1 ObjectDataProvider 536

19.5.2 XmlDataProvider 539

19.6 小结 541

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

20.1 数据绑定回顾 543

20.2 数据转换 544

20.2.1 使用StringFormat属性 545

20.2.2 值转换器简介 546

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

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

20.2.5 应用条件格式化 551

20.2.6 评估多个属性 552

20.3 列表控件 554

20.4 列表样式 555

20.4.1 ItemContainerStyle 556

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

20.4.3 交替条目样式 559

20.4.4 样式选择器 561

20.5 数据模板 564

20.5.1 分离和重用模板 566

20.5.2 使用更高级的模板 567

20.5.3 改变模板 569

20.5.4 模板选择器 570

20.5.5 模板与选择 573

20.5.6 改变项的布局 577

20.6 ComboBox控件 578

20.7 小结 581

第21章 数据视图 583

21.1 View对象 583

21.1.1 检索视图对象 584

21.1.2 视图导航 584

21.1.3 以声明方式创建视图 587

21.2 过滤、排序与分组 588

21.2.1 过滤集合 588

21.2.2 过滤DataTable对象 591

21.2.3 排序 592

21.2.4 分组 593

21.2.5 实时成型 598

21.3 小结 599

第22章 列表、树和网格 601

22.1 ListView控件 601

22.1.1 使用GirdView创建列 602

22.1.2 创建自定义视图 606

22.2 TreeView控件 613

22.2.1 创建数据绑定的TreeView控件 614

22.2.2 将DataSet对象绑定到TreeView控件 617

22.2.3 即时创建节点 618

22.3 DataGrid控件 621

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

22.3.2 定义列 623

22.3.3 设置列的格式和样式 628

22.3.4 设置行的格式 629

22.3.5 显示行细节 630

22.3.6 冻结列 631

22.3.7 选择 632

22.3.8 排序 632

22.3.9 编辑 633

22.4 小结 635

第Ⅵ 窗口、页面和富控件

第23章 窗口 639

23.1 Window类 639

23.1.1 显示窗口 641

23.1.2 定位窗口 642

23.1.3 保存和还原窗口位置 642

23.2 窗口交互 644

23.2.1 窗口所有权 646

23.2.2 对话框模型 647

23.2.3 通用对话框 648

23.3 非矩形窗口 649

23.3.1 简单形状窗口 649

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

23.3.3 移动形状窗口 653

23.3.4 改变形状窗口的尺寸 653

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

23.4 Windows 7任务栏编程 658

23.4.1 使用跳转列表 659

23.4.2 改变任务栏图标和预览 663

23.5 小结 667

第24章 页面和导航 669

24.1 基于页面的导航 669

24.2 基于页面的界面 670

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

24.2.2 Page类 672

24.2.3 超链接 673

24.2.4 在框架中驻留页面 675

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

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

24.3 页面历史 678

24.3.1 深入分析WPF中的URI 678

24.3.2 导航历史 679

24.3.3 维护自定义的属性 681

24.4 导航服务 682

24.4.1 通过编程进行导航 682

24.4.2 导航事件 683

24.4.3 管理日志 684

24.4.4 向日志添加自定义项 685

24.4.5 使用页函数 689

24.5 XAML浏览器应用程序 692

24.5.1 创建XBAP应用程序 692

24.5.2 部署XBAP应用程序 693

24.5.3 更新XBAP应用程序 695

24.5.4 XBAP应用程序的安全性 695

24.5.5 完全信任的XBAP应用程序 696

24.5.6 组合XBAP/独立应用程序 697

24.5.7 为不同的安全级别编写代码 697

24.5.8 在网页中嵌入XBAP应用程序 702

24.6 WebBrowser控件 702

24.6.1 导航到页面 703

24.6.2 构建DOM树 704

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

24.7 小结 708

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

25.1 菜单 709

25.1.1 Menu类 710

25.1.2 菜单项 710

25.1.3 ContextMenu类 712

25.1.4 菜单分隔条 713

25.2 工具栏和状态栏 714

25.2.1 ToolBar控件 714

25.2.2 StatusBar控件 717

25.3 功能区 718

25.3.1 添加功能区 719

25.3.2 应用程序菜单 720

25.3.3 选项卡、组与按钮 722

25.3.4 富工具提示 724

25.3.5 带有快捷键提示的键盘访问 725

25.3.6 改变功能区的大小 726

25.3.7 快速访问工具栏 729

25.4 小结 730

第26章 声音和视频 731

26.1 播放WAV音频 731

26.1.1 SoundPlayer类 731

26.1.2 SoundPlayerAction类 733

26.1.3 系统声音 733

26.2 MediaPlayer类 734

26.3 MediaElement类 735

26.3.1 使用代码播放音频 736

26.3.2 处理错误 737

26.3.3 使用触发器播放音频 737

26.3.4 播放多个声音 739

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

26.3.6 将动画同步到音频 742

26.3.7 播放视频 744

26.3.8 视频效果 744

26.4 语音 747

26.4.1 语音合成 747

26.4.2 语音识别 749

26.5 小结 751

第27章 3D绘图 753

27.1 3D绘图基础 753

27.1.1 视口 754

27.1.2 3D对象 754

27.1.3 摄像机 761

27.2 深入研究3D绘图 765

27.2.1 着色和法线 766

27.2.2 更复杂的形状 769

27.2.3 Model3DGroup集合 769

27.2.4 使用材质 771

27.2.5 纹理映射 773

27.3 交互和动画 777

27.3.1 变换 777

27.3.2 旋转 778

27.3.3 飞过 779

27.3.4 跟踪球 781

27.3.5 命中测试 782

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

27.4 小结 789

第Ⅶ部分 文档和打印

第28章 文档 793

28.1 理解文档 793

28.2 流文档 794

28.2.1 流内容元素 795

28.2.2 设置内容元素的格式 796

28.2.3 创建简单的流文档 797

28.2.4 块元素 799

28.2.5 内联元素 804

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

28.2.7 文本对齐 812

28.3 只读流文档容器 813

28.3.1 缩放 814

28.3.2 创建页面和列 815

28.3.3 从文件加载文档 817

28.3.4 打印 818

28.4 编辑流文档 818

28.4.1 加载文件 819

28.4.2 保存文件 821

28.4.3 设置所选文本的格式 822

28.4.4 获取单个单词 824

28.5 固定文档 825

28.6 批注 826

28.6.1 批注类 827

28.6.2 启用批注服务 828

28.6.3 创建批注 829

28.6.4 检查批注 832

28.6.5 响应批注更改 835

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

28.6.7 自定义便签的外观 836

28.7 小结 837

第29章 打印 839

29.1 基本打印 839

29.1.1 打印元素 840

29.1.2 变换打印输出 842

29.1.3 打印不显示的元素 844

29.1.4 打印文档 845

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

29.2 自定义打印 851

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

29.2.2 自定义多页打印 854

29.3 打印设置和管理 859

29.3.1 保存打印设置 859

29.3.2 打印页面范围 859

29.3.3 管理打印队列 860

29.4 通过XPS进行打印 863

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

29.4.2 写入内存的XPS文档 864

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

29.4.4 异步打印 866

29.5 小结 866

第Ⅷ部分 其他主题

第30章 与Windows窗体进行交互 869

30.1 访问互操作性 869

30.2 混合窗口和窗体 870

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

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

30.2.3 显示模态窗口和窗体 871

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

30.2.5 启用Windows窗体控件的可视化风格 872

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

30.3.1 WPF和Windows窗体“空域” 873

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

30.3.3 使用WPF和Windows窗体用户控件 876

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

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

30.3.6 属性映射 880

30.4 小结 882

第31章 多线程 883

31.1 了解多线程模型 883

31.1.1 Dispatcher类 884

31.1.2 DispatcherObject类 884

31.2 BackgroundWorker类 887

31.2.1 简单的异步操作 887

31.2.2 创建BackgroundWorker对象 888

31.2.3 运行BackgroundWorker对象 889

31.2.4 跟踪进度 891

31.2.5 支持取消 893

31.3 小结 894

第32章 插件模型 895

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

32.2 了解插件管道 896

32.2.1 管道的工作原理 897

32.2.2 插件文件夹结构 898

32.2.3 为使用插件模型准备

解决方案 899

32.3 创建使用插件模型的应用程序 900

32.3.1 协定 901

32.3.2 插件视图 901

32.3.3 插件 902

32.3.4 插件适配器 902

32.3.5 宿主视图 903

32.3.6 宿主适配器 904

32.3.7 宿主 904

32.3.8 更多插件 907

32.4 与宿主进行交互 908

32.5 可视化插件 912

32.6 小结 915

第33章 ClickOnce部署 917

33.1 理解应用程序部署 917

33.1.1 ClickOnce安装模型 918

33.1.2 ClickOnce部署的局限性 919

33.2 简单的ClickOnce发布 920

33.2.1 设置发布者和产品 920

33.2.2 启动发布向导 922

33.2.3 理解部署文件的结构 926

33.2.4 安装ClickOnce应用程序 926

33.2.5 更新ClickOnce应用程序 928

33.3 ClickOnce附加选项 928

33.3.1 发布版本 928

33.3.2 更新 929

33.3.3 文件关联 930

33.3.4 发布选项 931

33.4 小结 932

评论 ······

学习wpf的经典之作,排版上有很多错误,需要注意。

WPF

这本书的特点是,详略非常不得当,有些重要的东西,比如RIchTextbox,DragDrop等等一笔带过,而一些不是特别常用的属性,方法确大书特书。而更糟糕的是,国内出版的关于WPF的书十有八九都抄袭这本书。。。。。

章节规划的很棒,细节也很到位

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册