書籍簡(jiǎn)介:
書全面講解WPF的實(shí)際工作原理,是一本W(wǎng)PF權(quán)威著作。在緊貼實(shí)用示例這一思想的引導(dǎo)下,列出實(shí)用提示,引導(dǎo)以專業(yè)的方式使用WPF。本書開(kāi)篇介紹WPF基本概念以便為您奠定堅(jiān)實(shí)的基礎(chǔ),并將現(xiàn)有C#技能作為引用框架,然后討論高級(jí)概念,結(jié)合實(shí)際演示它們的用法,并重點(diǎn)強(qiáng)調(diào)了可由此節(jié)省的時(shí)間和人力成本。
本書特色
u 理解WPF編程的基礎(chǔ)知識(shí):從XAML到控件,乃至數(shù)據(jù)流
u 開(kāi)發(fā)實(shí)用的應(yīng)用程序,帶您實(shí)際了解導(dǎo)航、本地化和開(kāi)發(fā)
u 探討WPF提供的高級(jí)用戶界面控件
u 分析如何在WPF中管理文檔,涵蓋了文本布局、打印和文檔打包等所有技術(shù)
u 使用圖形和多媒體來(lái)增強(qiáng)應(yīng)用程序
作者簡(jiǎn)介:
atthew MacDonald是一位作家、教育家,曾三次榮膺微軟MVP。他迄今已經(jīng)撰寫了十多本有關(guān).NET編程的書籍,包括Pro Silverlight 5 in C#(由Apress于2012年出版)和Beginning ASP.NET 4.5 in C#(由Apress于2012年出版) 。他還曾撰寫Your Brain: The Missing Manual(由O’Reilly Media于2008年出版)一書,該書講述如何*限度地激發(fā)大腦潛能,出版后受到廣大讀者的熱烈歡迎。Matthew目前與妻子和兩個(gè)女兒居住在多倫多。
出版日期:
2013年08月
章節(jié)目錄:
第Ⅰ部分 基礎(chǔ)知識(shí)
第1章 WPF概述 3
1.1 Windows圖形演化 3
1.1.1 DirectX:新的圖形引擎 4
1.1.2 硬件加速與WPF 4
1.2 WPF:高級(jí)API 4
1.3 分辨率無(wú)關(guān)性 5
1.3.1 WPF單位 6
1.3.2 系統(tǒng)DPI 7
1.3.3 位圖和矢量圖形 9
1.4 WPF體系結(jié)構(gòu) 10
1.5 WPF 4.5 13
1.5.1 WPF工具包 14
1.5.2 Visual Studio 2012 14
1.6 小結(jié) 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基礎(chǔ) 20
2.2.1 XAML名稱空間 21
2.2.2 代碼隱藏類 22
2.3 XAML中的屬性和事件 24
2.3.1 簡(jiǎn)單屬性與類型轉(zhuǎn)換器 25
2.3.2 復(fù)雜屬性 26
2.3.3 標(biāo)記擴(kuò)展 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 使用代碼和未經(jīng)編譯的XAML 40
2.5.3 使用代碼和編譯過(guò)的XAML 42
2.5.4 只使用XAML 44
2.6 小結(jié) 45
第3章 布局 47
3.1 理解WPF中的布局 47
3.1.1 WPF布局原則 47
3.1.2 布局過(guò)程 48
3.1.3 布局容器 48
3.2 使用StackPanel面板進(jìn)行簡(jiǎn)單
布局 50
3.2.1 布局屬性 52
3.2.2 對(duì)齊方式 52
3.2.3 邊距 53
3.2.4 最小尺寸、最大尺寸以及顯式地
設(shè)置尺寸 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 調(diào)整行和列 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面板進(jìn)行基于
坐標(biāo)的布局 72
3.5.1 Z順序 73
3.5.2 lnkCanvas元素 74
3.6 布局示例 76
3.6.1 列設(shè)置 76
3.6.2 動(dòng)態(tài)內(nèi)容 77
3.6.3 組合式用戶界面 79
3.7 小結(jié) 80
第4章 依賴項(xiàng)屬性 83
4.1 理解依賴項(xiàng)屬性 83
4.1.1 定義依賴項(xiàng)屬性 84
4.1.2 注冊(cè)依賴項(xiàng)屬性 84
4.1.3 添加屬性包裝器 86
4.1.4 WPF使用依賴項(xiàng)屬性的方式 87
4.1.5 共享的依賴項(xiàng)屬性 88
4.1.6 附加的依賴項(xiàng)屬性 88
4.2 屬性驗(yàn)證 90
4.2.1 驗(yàn)證回調(diào) 90
4.2.2 強(qiáng)制回調(diào) 91
4.3 小結(jié) 93
第5章 路由事件 95
5.1 理解路由事件 95
5.1.1 定義、注冊(cè)和封裝路由事件 95
5.1.2 共享路由事件 96
5.1.3 引發(fā)路由事件 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 焦點(diǎn) 111
5.4.3 獲取鍵盤狀態(tài) 112
5.5 鼠標(biāo)輸入 113
5.5.1 鼠標(biāo)單擊 115
5.5.2 捕獲鼠標(biāo) 115
5.5.3 鼠標(biāo)拖放 116
5.6 多點(diǎn)觸控輸入 118
5.6.1 多點(diǎn)觸控的輸入層次 119
5.6.2 原始觸控 119
5.6.3 操作 122
5.6.4 慣性 124
5.7 小結(jié) 125
第Ⅱ部分 進(jìn)一步研究WPF
第6章 控件 129
6.1 控件類 129
6.1.1 背景畫刷和前景畫刷 130
6.1.2 字體 132
6.1.3 鼠標(biāo)光標(biāo) 136
6.2 內(nèi)容控件 137
6.2.1 Content屬性 138
6.2.2 對(duì)齊內(nèi)容 140
6.2.3 WPF內(nèi)容原則 141
6.2.4 標(biāo)簽 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 小結(jié) 171
第7章 Application類 173
7.1 應(yīng)用程序的生命周期 173
7.1.1 創(chuàng)建Application對(duì)象 173
7.1.2 派生自定義的Application類 174
7.1.3 應(yīng)用程序的關(guān)閉方式 176
7.1.4 應(yīng)用程序事件 177
7.2 Application類的任務(wù) 179
7.2.1 顯示初始界面 179
7.2.2 處理命令行參數(shù) 180
7.2.3 訪問(wèn)當(dāng)前Application對(duì)象 181
7.2.4 在窗口之間進(jìn)行交互 182
7.2.5 單實(shí)例應(yīng)用程序 184
7.3 程序集資源 189
7.3.1 添加資源 189
7.3.2 檢索資源 190
7.3.3 pack URI 192
7.3.4 內(nèi)容文件 193
7.4 本地化 193
7.4.1 構(gòu)建能夠本地化的用戶界面 194
7.4.2 使應(yīng)用程序?yàn)楸镜鼗龊脺?zhǔn)備 194
7.4.3 管理翻譯過(guò)程 195
7.5 小結(jié) 200
第8章 元素綁定 201
8.1 將元素綁定到一起 201
8.1.1 綁定表達(dá)式 202
8.1.2 綁定錯(cuò)誤 203
8.1.3 綁定模式 203
8.1.4 使用代碼創(chuàng)建綁定 205
8.1.5 使用代碼檢索綁定 206
8.1.6 多綁定 207
8.1.7 綁定更新 210
8.1.8 綁定延遲 211
8.2 綁定到非元素對(duì)象 211
8.2.1 Source屬性 212
8.2.2 RelativeSource屬性 212
8.2.3 DataContext屬性 213
8.3 小結(jié) 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 命令庫(kù) 219
9.3 執(zhí)行命令 220
9.3.1 命令源 220
9.3.2 命令綁定 221
9.3.3 使用多命令源 223
9.3.4 微調(diào)命令文本 224
9.3.5 直接調(diào)用命令 224
9.3.6 禁用命令 225
9.3.7 具有內(nèi)置命令的控件 227
9.4 高級(jí)命令 229
9.4.1 自定義命令 229
9.4.2 在不同位置使用相同的命令 230
9.4.3 使用命令參數(shù) 232
9.4.4 跟蹤和翻轉(zhuǎn)命令 233
9.5 小結(jié) 237
第10章 資源 239
10.1 資源基礎(chǔ) 239
10.1.1 資源集合 239
10.1.2 資源的層次 241
10.1.3 靜態(tài)資源和動(dòng)態(tài)資源 242
10.1.4 非共享資源 243
10.1.5 通過(guò)代碼訪問(wèn)資源 244
10.1.6 應(yīng)用程序資源 244
10.1.7 系統(tǒng)資源 245
10.2 資源字典 246
10.2.1 創(chuàng)建資源字典 246
10.2.2 使用資源字典 247
10.2.3 在程序集之間共享資源 248
10.3 小結(jié) 251
第11章 樣式和行為 253
11.1 樣式基礎(chǔ) 253
11.1.1 創(chuàng)建樣式對(duì)象 256
11.1.2 設(shè)置屬性 257
11.1.3 關(guān)聯(lián)事件處理程序 258
11.1.4 多層樣式 259
11.1.5 通過(guò)類型自動(dòng)應(yīng)用樣式 261
11.2 觸發(fā)器 262
11.2.1 簡(jiǎn)單觸發(fā)器 262
11.2.2 事件觸發(fā)器 264
11.3 行為 266
11.3.1 獲取行為支持 266
11.3.2 理解行為模型 267
11.3.3 創(chuàng)建行為 268
11.3.4 使用行為 270
11.3.5 Blend中的設(shè)計(jì)時(shí)行為支持 271
11.4 小結(jié) 271
第Ⅲ部分 圖畫和動(dòng)畫
第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 直線線帽和直線交點(diǎn) 286
12.1.9 點(diǎn)劃線 287
12.1.10 像素對(duì)齊 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 小結(jié) 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 微語(yǔ)言幾何圖形 318
13.1.6 使用幾何圖形進(jìn)行剪裁 319
13.2 圖畫 320
13.2.1 顯示圖畫 322
13.2.2 導(dǎo)出插圖 324
13.3 小結(jié) 326
第14章 效果和可視化對(duì)象 327
14.1 可視化對(duì)象 327
14.1.1 繪制可視化對(duì)象 328
14.1.2 在元素中封裝可視化對(duì)象 329
14.1.3 命中測(cè)試 332
14.1.4 復(fù)雜的命中測(cè)試 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對(duì)象 343
14.3.3 更高效的像素寫入 345
14.4 小結(jié) 347
第15章 動(dòng)畫基礎(chǔ) 349
15.1 理解WPF動(dòng)畫 349
15.1.1 基于時(shí)間的動(dòng)畫 349
15.1.2 基于屬性的動(dòng)畫 350
15.2 基本動(dòng)畫 351
15.2.1 Animation類 351
15.2.2 使用代碼創(chuàng)建動(dòng)畫 353
15.2.3 同時(shí)發(fā)生的動(dòng)畫 358
15.2.4 動(dòng)畫的生命周期 358
15.2.5 Timeline類 359
15.3 故事板 362
15.3.1 故事板 363
15.3.2 事件觸發(fā)器 363
15.3.3 重疊動(dòng)畫 366
15.3.4 同步的動(dòng)畫 367
15.3.5 控制播放 367
15.3.6 監(jiān)視動(dòng)畫進(jìn)度 371
15.4 動(dòng)畫緩動(dòng) 373
15.4.1 使用緩動(dòng)函數(shù) 373
15.4.2 在動(dòng)畫開(kāi)始時(shí)應(yīng)用緩動(dòng)與在動(dòng)畫
結(jié)束時(shí)應(yīng)用緩動(dòng) 374
15.4.3 緩動(dòng)函數(shù)類 375
15.4.4 創(chuàng)建自定義緩動(dòng)函數(shù) 377
15.5 動(dòng)畫性能 379
15.5.1 期望的幀率 380
15.5.2 位圖緩存 382
15.6 小結(jié) 384
第16章 高級(jí)動(dòng)畫 385
16.1 動(dòng)畫類型回顧 385
16.1.1 動(dòng)態(tài)變換 386
16.1.2 動(dòng)態(tài)改變畫刷 390
16.1.3 動(dòng)態(tài)改變像素著色器 392
16.2 關(guān)鍵幀動(dòng)畫 393
16.2.1 離散的關(guān)鍵幀動(dòng)畫 395
16.2.2 緩動(dòng)關(guān)鍵幀 395
16.2.3 樣條關(guān)鍵幀動(dòng)畫 396
16.3 基于路徑的動(dòng)畫 397
16.4 基于幀的動(dòng)畫 399
16.5 使用代碼創(chuàng)建故事板 402
16.5.1 創(chuàng)建主窗口 403
16.5.2 創(chuàng)建Bomb用戶控件 405
16.5.3 投彈 406
16.5.4 攔截炸彈 409
16.5.5 統(tǒng)計(jì)炸彈和清理工作 410
16.6 小結(jié) 412
第Ⅳ部分 模板和自定義元素
第17章 控件模板 417
17.1 理解邏輯樹(shù)和可視化樹(shù) 417
17.2 理解模板 422
17.2.1 修飾類 424
17.2.2 剖析控件 426
17.3 創(chuàng)建控件模板 428
17.3.1 簡(jiǎn)單按鈕 429
17.3.2 模板綁定 430
17.3.3 改變屬性的觸發(fā)器 431
17.3.4 使用動(dòng)畫的觸發(fā)器 434
17.4 組織模板資源 435
17.4.1 分解按鈕控件模板 436
17.4.2 通過(guò)樣式應(yīng)用模板 438
17.4.3 自動(dòng)應(yīng)用模板 439
17.4.4 由用戶選擇的皮膚 440
17.5 構(gòu)建更復(fù)雜的模板 442
17.5.1 嵌套的模板 443
17.5.2 修改滾動(dòng)條 445
17.5.3 控件模板示例 450
17.6 可視化狀態(tài) 451
17.7 小結(jié) 452
第18章 自定義元素 453
18.1 理解WPF中的自定義元素 454
18.2 構(gòu)建基本的用戶控件 456
18.2.1 定義依賴項(xiàng)屬性 456
18.2.2 定義路由事件 459
18.2.3 添加標(biāo)記 460
18.2.4 使用控件 462
18.2.5 命令支持 462
18.2.6 深入分析用戶控件 465
18.3 創(chuàng)建無(wú)外觀控件 466
18.3.1 修改顏色拾取器的代碼 466
18.3.2 修改顏色拾取器的標(biāo)記 467
18.3.3 精簡(jiǎn)控件模板 469
18.4 支持可視化狀態(tài) 472
18.4.1 開(kāi)始編寫FlipPanel類 473
18.4.2 選擇部件和狀態(tài) 475
18.4.3 默認(rèn)控件模板 476
18.4.4 使用FlipPanel控件 482
18.4.5 使用不同的控件模板 483
18.5 創(chuàng)建自定義面板 485
18.5.1 兩步布局過(guò)程 485
18.5.2 Canvas面板的副本 488
18.5.3 更好的WrapPanel面板 489
18.6 自定義繪圖元素 492
18.6.1 OnRender( )方法 493
18.6.2 評(píng)估自定義繪圖 494
18.6.3 自定義繪圖元素 495
18.6.4 創(chuàng)建自定義裝飾元素 497
18.7 小結(jié) 498
第Ⅴ部分 數(shù)據(jù)
第19章 數(shù)據(jù)綁定 501
19.1 使用自定義對(duì)象綁定到
數(shù)據(jù)庫(kù) 501
19.1.1 構(gòu)建數(shù)據(jù)訪問(wèn)組件 502
19.1.2 構(gòu)建數(shù)據(jù)對(duì)象 504
19.1.3 顯示綁定對(duì)象 505
19.1.4 更新數(shù)據(jù)庫(kù) 508
19.1.5 更改通知 508
19.2 綁定到對(duì)象集合 510
19.2.1 顯示和編輯集合項(xiàng) 510
19.2.2 插入和移除集合項(xiàng) 513
19.2.3 綁定到ADO.NET對(duì)象 514
19.2.4 綁定到LINQ表達(dá)式 515
19.3 提高大列表的性能 518
19.3.1 虛擬化 518
19.3.2 項(xiàng)容器再循環(huán) 519
19.3.3 緩存長(zhǎng)度 519
19.3.4 延遲滾動(dòng) 520
19.4 驗(yàn)證 521
19.4.1 在數(shù)據(jù)對(duì)象中進(jìn)行驗(yàn)證 521
19.4.2 自定義驗(yàn)證規(guī)則 526
19.4.3 響應(yīng)驗(yàn)證錯(cuò)誤 528
19.4.4 獲取錯(cuò)誤列表 529
19.4.5 顯示不同的錯(cuò)誤指示符號(hào) 530
19.4.6 驗(yàn)證多個(gè)值 533
19.5 數(shù)據(jù)提供者 535
19.5.1 ObjectDataProvider 536
19.5.2 XmlDataProvider 539
19.6 小結(jié) 541
第20章 格式化綁定的數(shù)據(jù) 543
20.1 數(shù)據(jù)綁定回顧 543
20.2 數(shù)據(jù)轉(zhuǎn)換 544
20.2.1 使用StringFormat屬性 545
20.2.2 值轉(zhuǎn)換器簡(jiǎn)介 546
20.2.3 使用值轉(zhuǎn)換器設(shè)置字符串
的格式 547
20.2.4 使用值轉(zhuǎn)換器創(chuàng)建對(duì)象 549
20.2.5 應(yīng)用條件格式化 551
20.2.6 評(píng)估多個(gè)屬性 552
20.3 列表控件 554
20.4 列表樣式 555
20.4.1 ItemContainerStyle 556
20.4.2 包含復(fù)選框或單選按鈕的ListBox
控件 557
20.4.3 交替條目樣式 559
20.4.4 樣式選擇器 561
20.5 數(shù)據(jù)模板 564
20.5.1 分離和重用模板 566
20.5.2 使用更高級(jí)的模板 567
20.5.3 改變模板 569
20.5.4 模板選擇器 570
20.5.5 模板與選擇 573
20.5.6 改變項(xiàng)的布局 577
20.6 ComboBox控件 578
20.7 小結(jié) 581
第21章 數(shù)據(jù)視圖 583
21.1 View對(duì)象 583
21.1.1 檢索視圖對(duì)象 584
21.1.2 視圖導(dǎo)航 584
21.1.3 以聲明方式創(chuàng)建視圖 587
21.2 過(guò)濾、排序與分組 588
21.2.1 過(guò)濾集合 588
21.2.2 過(guò)濾DataTable對(duì)象 591
21.2.3 排序 592
21.2.4 分組 593
21.2.5 實(shí)時(shí)成型 598
21.3 小結(jié) 599
第22章 列表、樹(shù)和網(wǎng)格 601
22.1 ListView控件 601
22.1.1 使用GirdView創(chuàng)建列 602
22.1.2 創(chuàng)建自定義視圖 606
22.2 TreeView控件 613
22.2.1 創(chuàng)建數(shù)據(jù)綁定的TreeView
控件 614
22.2.2 將DataSet對(duì)象綁定到TreeView
控件 617
22.2.3 即時(shí)創(chuàng)建節(jié)點(diǎn) 618
22.3 DataGrid控件 621
22.3.1 改變列的尺寸與重新安排列 622
22.3.2 定義列 623
22.3.3 設(shè)置列的格式和樣式 628
22.3.4 設(shè)置行的格式 629
22.3.5 顯示行細(xì)節(jié) 630
22.3.6 凍結(jié)列 631
22.3.7 選擇 632
22.3.8 排序 632
22.3.9 編輯 633
22.4 小結(jié) 635
第Ⅵ 窗口、頁(yè)面和富控件
第23章 窗口 639
23.1 Window類 639
23.1.1 顯示窗口 641
23.1.2 定位窗口 642
23.1.3 保存和還原窗口位置 642
23.2 窗口交互 644
23.2.1 窗口所有權(quán) 646
23.2.2 對(duì)話框模型 647
23.2.3 通用對(duì)話框 648
23.3 非矩形窗口 649
23.3.1 簡(jiǎn)單形狀窗口 649
23.3.2 具有形狀內(nèi)容的透明窗口 651
23.3.3 移動(dòng)形狀窗口 653
23.3.4 改變形狀窗口的尺寸 653
23.3.5 組合到一起:窗口的自定義控件
模板 655
23.4 Windows 7任務(wù)欄編程 658
23.4.1 使用跳轉(zhuǎn)列表 659
23.4.2 改變?nèi)蝿?wù)欄圖標(biāo)和預(yù)覽 663
23.5 小結(jié) 667
第24章 頁(yè)面和導(dǎo)航 669
24.1 基于頁(yè)面的導(dǎo)航 669
24.2 基于頁(yè)面的界面 670
24.2.1 創(chuàng)建一個(gè)具有導(dǎo)航窗口的基于
頁(yè)面的簡(jiǎn)單應(yīng)用程序 670
24.2.2 Page類 672
24.2.3 超鏈接 673
24.2.4 在框架中駐留頁(yè)面 675
24.2.5 在另一個(gè)頁(yè)面中駐留頁(yè)面 677
24.2.6 在Web瀏覽器中駐留頁(yè)面 678
24.3 頁(yè)面歷史 678
24.3.1 深入分析WPF中的URI 678
24.3.2 導(dǎo)航歷史 679
24.3.3 維護(hù)自定義的屬性 681
24.4 導(dǎo)航服務(wù) 682
24.4.1 通過(guò)編程進(jìn)行導(dǎo)航 682
24.4.2 導(dǎo)航事件 683
24.4.3 管理日志 684
24.4.4 向日志添加自定義項(xiàng) 685
24.4.5 使用頁(yè)函數(shù) 689
24.5 XAML瀏覽器應(yīng)用程序 692
24.5.1 創(chuàng)建XBAP應(yīng)用程序 692
24.5.2 部署XBAP應(yīng)用程序 693
24.5.3 更新XBAP應(yīng)用程序 695
24.5.4 XBAP應(yīng)用程序的安全性 695
24.5.5 完全信任的XBAP應(yīng)用程序 696
24.5.6 組合XBAP/獨(dú)立應(yīng)用程序 697
24.5.7 為不同的安全級(jí)別編寫代碼 697
24.5.8 在網(wǎng)頁(yè)中嵌入XBAP
應(yīng)用程序 702
24.6 WebBrowser控件 702
24.6.1 導(dǎo)航到頁(yè)面 703
24.6.2 構(gòu)建DOM樹(shù) 704
24.6.3 使用.NET代碼為網(wǎng)頁(yè)添加
腳本 706
24.7 小結(jié) 708
第25章 菜單、工具欄和功能區(qū) 709
25.1 菜單 709
25.1.1 Menu類 710
25.1.2 菜單項(xiàng) 710
25.1.3 ContextMenu類 712
25.1.4 菜單分隔條 713
25.2 工具欄和狀態(tài)欄 714
25.2.1 ToolBar控件 714
25.2.2 StatusBar控件 717
25.3 功能區(qū) 718
25.3.1 添加功能區(qū) 719
25.3.2 應(yīng)用程序菜單 720
25.3.3 選項(xiàng)卡、組與按鈕 722
25.3.4 富工具提示 724
25.3.5 帶有快捷鍵提示的鍵盤訪問(wèn) 725
25.3.6 改變功能區(qū)的大小 726
25.3.7 快速訪問(wèn)工具欄 729
25.4 小結(jié) 730
第26章 聲音和視頻 731
26.1 播放WAV音頻 731
26.1.1 SoundPlayer類 731
26.1.2 SoundPlayerAction類 733
26.1.3 系統(tǒng)聲音 733
26.2 MediaPlayer類 734
26.3 MediaElement類 735
26.3.1 使用代碼播放音頻 736
26.3.2 處理錯(cuò)誤 737
26.3.3 使用觸發(fā)器播放音頻 737
26.3.4 播放多個(gè)聲音 739
26.3.5 改變音量、平衡、速度以及
位置 740
26.3.6 將動(dòng)畫同步到音頻 742
26.3.7 播放視頻 744
26.3.8 視頻效果 744
26.4 語(yǔ)音 747
26.4.1 語(yǔ)音合成 747
26.4.2 語(yǔ)音識(shí)別 749
26.5 小結(jié) 751
第27章 3D繪圖 753
27.1 3D繪圖基礎(chǔ) 753
27.1.1 視口 754
27.1.2 3D對(duì)象 754
27.1.3 攝像機(jī) 761
27.2 深入研究3D繪圖 765
27.2.1 著色和法線 766
27.2.2 更復(fù)雜的形狀 769
27.2.3 Model3DGroup集合 769
27.2.4 使用材質(zhì) 771
27.2.5 紋理映射 773
27.3 交互和動(dòng)畫 777
27.3.1 變換 777
27.3.2 旋轉(zhuǎn) 778
27.3.3 飛過(guò) 779
27.3.4 跟蹤球 781
27.3.5 命中測(cè)試 782
27.3.6 3D表面上的2D元素 786
27.4 小結(jié) 789
第Ⅶ部分 文檔和打印
第28章 文檔 793
28.1 理解文檔 793
28.2 流文檔 794
28.2.1 流內(nèi)容元素 795
28.2.2 設(shè)置內(nèi)容元素的格式 796
28.2.3 創(chuàng)建簡(jiǎn)單的流文檔 797
28.2.4 塊元素 799
28.2.5 內(nèi)聯(lián)元素 804
28.2.6 通過(guò)代碼與元素進(jìn)行交互 809
28.2.7 文本對(duì)齊 812
28.3 只讀流文檔容器 813
28.3.1 縮放 814
28.3.2 創(chuàng)建頁(yè)面和列 815
28.3.3 從文件加載文檔 817
28.3.4 打印 818
28.4 編輯流文檔 818
28.4.1 加載文件 819
28.4.2 保存文件 821
28.4.3 設(shè)置所選文本的格式 822
28.4.4 獲取單個(gè)單詞 824
28.5 固定文檔 825
28.6 批注 826
28.6.1 批注類 827
28.6.2 啟用批注服務(wù) 828
28.6.3 創(chuàng)建批注 829
28.6.4 檢查批注 832
28.6.5 響應(yīng)批注更改 835
28.6.6 在固定文檔中保存批注 835
28.6.7 自定義便簽的外觀 836
28.7 小結(jié) 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 在文檔打印輸出中控制頁(yè)面 848
29.2 自定義打印 851
29.2.1 使用可視化層中的類
進(jìn)行打印 851
29.2.2 自定義多頁(yè)打印 854
29.3 打印設(shè)置和管理 859
29.3.1 保存打印設(shè)置 859
29.3.2 打印頁(yè)面范圍 859
29.3.3 管理打印隊(duì)列 860
29.4 通過(guò)XPS進(jìn)行打印 863
29.4.1 為打印預(yù)覽創(chuàng)建XPS文檔 863
29.4.2 寫入內(nèi)存的XPS文檔 864
29.4.3 通過(guò)XPS直接打印到
打印機(jī) 865
29.4.4 異步打印 866
29.5 小結(jié) 866
第Ⅷ部分 其他主題
第30章 與Windows窗體進(jìn)行交互 869
30.1 訪問(wèn)互操作性 869
30.2 混合窗口和窗體 870
30.2.1 為WPF應(yīng)用程序添加窗體 870
30.2.2 為Windows窗體應(yīng)用程序
添加WPF窗口 870
30.2.3 顯示模態(tài)窗口和窗體 871
30.2.4 顯示非模態(tài)窗口和窗體 871
30.2.5 啟用Windows窗體控件的
可視化風(fēng)格 872
30.3 創(chuàng)建具有混合內(nèi)容的窗口 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 訪問(wèn)鍵、助記碼和焦點(diǎn) 879
30.3.6 屬性映射 880
30.4 小結(jié) 882
第31章 多線程 883
31.1 了解多線程模型 883
31.1.1 Dispatcher類 884
31.1.2 DispatcherObject類 884
31.2 BackgroundWorker類 887
31.2.1 簡(jiǎn)單的異步操作 887
31.2.2 創(chuàng)建BackgroundWorker
對(duì)象 888
31.2.3 運(yùn)行BackgroundWorker
對(duì)象 889
31.2.4 跟蹤進(jìn)度 891
31.2.5 支持取消 893
31.3 小結(jié) 894
第32章 插件模型 895
32.1 在MAF和MEF兩者間
進(jìn)行選擇 895
32.2 了解插件管道 896
32.2.1 管道的工作原理 897
32.2.2 插件文件夾結(jié)構(gòu) 898
32.2.3 為使用插件模型準(zhǔn)備
解決方案 899
32.3 創(chuàng)建使用插件模型的
應(yīng)用程序 900
32.3.1 協(xié)定 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 與宿主進(jìn)行交互 908
32.5 可視化插件 912
32.6 小結(jié) 915
第33章 ClickOnce部署 917
33.1 理解應(yīng)用程序部署 917
33.1.1 ClickOnce安裝模型 918
33.1.2 ClickOnce部署的局限性 919
33.2 簡(jiǎn)單的ClickOnce發(fā)布 920
33.2.1 設(shè)置發(fā)布者和產(chǎn)品 920
33.2.2 啟動(dòng)發(fā)布向?qū)?922
33.2.3 理解部署文件的結(jié)構(gòu) 926
33.2.4 安裝ClickOnce應(yīng)用程序 926
33.2.5 更新ClickOnce應(yīng)用程序 928
33.3 ClickOnce附加選項(xiàng) 928
33.3.1 發(fā)布版本 928
33.3.2 更新 929
33.3.3 文件關(guān)聯(lián) 930
33.3.4 發(fā)布選項(xiàng) 931
33.4 小結(jié) 932
封面圖: