WPF 編程寶典-使用 C# 2012 和 .NET 4.5

第Ⅰ部分 基礎知識
第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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章