 |
-- 會員 / 註冊 --
|
|
|
|
WPF編程寶典—— 使用C# 2008和.NET 3.5(第2版) ( 簡體 字) |
作者:(美) Matthew MacDonald | 類別:1. -> 程式設計 -> .NET -> C# |
譯者:王德才 |
出版社:清華大學出版社 | 3dWoo書號: 23142 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:8/1/2009 |
頁數: |
光碟數: |
|
站長推薦:  |
印刷: | 語系: ( 簡體 版 ) |
|
【不接受訂購】 | ISBN:9787302206569 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:
當.NET第一次出現時,它引入了一些重要的新技術。包括編寫Web應用程序的全新方法(ASP.NET)、連接數據庫的全新方法(ADO.NET)、新的類型安全的語言(C#和VB.NET),以及托管的運行時(CLR)。在這些新技術中最重要的是Windows窗體,它是用于構建Windows應用程序的一套類庫。 盡管Windows窗體是一個成熟且非常完善的工具包,但它使用的是在過去十年中本質上并無變化的Windows技術。最重要的是,Windows窗體依靠Windows API來創建標準用戶界面元素的可視化外觀,如按鈕、文本框、復選框等。所以,這些要素在本質上是不可定制的。. 例如,如果希望創建一個時髦的光暈按鈕,就需要創建一個自定義控件,并使用低級.. |
內容簡介: |
目錄:
第1章 WPF概述. 1 1.1 理解Windows圖形 1 1.1.1 DirectX:新的圖形引擎 1 1.1.2 硬件加速與WPF 2 1.2 WPF:高級API 4 1.2.1 分辨率無關性 5 1.2.2 WPF的演化 9 1.2.3 Windows窗體將繼續保留 11 1.2.4 DirectX也將繼續保留 12 1.2.5 Silverlight 12 1.3 WPF體系結構 13 1.4 結束語 17 第2章 XAML 19 2.1 理解XAML 20 2.1.1 WPF之前的圖形用戶界面 20 2.1.2 XAML變體 21 2.1.3 XAML編譯 22 2.2 XAML基礎 22 2.2.1 XAML名稱空間 23 2.2.2 后臺代碼類 24 2.3 XAML中的屬性和事件 26 2.3.1 簡單屬性與類型轉換器 27 2.3.2 復雜屬性 29 2.3.3 標記擴展 30 2.3.4 附加屬性 31 2.3.5 嵌套元素 32 2.3.6 特殊字符與空白字符 35 2.3.7 事件 36 2.3.8 完整的Eight Ball示例程序 38 2.4 使用其他名稱空間中的類型 38 2.5 加載和編譯XAML 40 2.5.1 只使用代碼 41 2.5.2 使用代碼和未編譯的XAML 43 2.5.3 使用代碼和編譯過的XAML 44 2.5.4 只使用XAML 46 2.6 結束語 47 第3章 Application類 48 3.1 應用程序的生命周期 48 3.1.1 創建Application對象 48 3.1.2 派生一個自定義的Application類 49 3.1.3 應用程序的關閉方式 51 3.1.4 應用程序事件 51 3.2 Application類的任務 53 3.2.1 處理命令行參數 54 3.2.2 訪問當前Application對象 55 3.2.3 在窗口之間進行交互 56 3.2.4 單實例應用程序 57 3.3 結束語 63 第4章 布局 64 4.1 理解WPF中的布局 64 4.1.1 WPF布局原則 65 4.1.2 布局過程 66 4.1.3 布局包容器 66 4.2 使用StackPanel面板進行簡單布局 68 4.2.1 布局屬性 69 4.2.2 對齊方式 70 4.2.3 外邊距 71 4.2.4 最小尺寸.最大尺寸以及顯式地設置尺寸 72 4.3 WrapPanel面板和DockPanel面板 74 4.3.1 WrapPanel面板 74 4.3.2 DockPanel面板 75 4.3.3 嵌套布局包容器 77 4.4 Grid面板 78 4.4.1 調整行和列 80 4.4.2 跨越行和列 82 4.4.3 分割窗口 83 4.4.4 共享尺寸組 86 4.4.5 UniformGrid面板 88 4.5 使用Canvas面板進行基于坐標的布局 89 4.5.1 Z順序 90 4.5.2 lnkCanvas元素 91 4.6 布局示例 93 4.6.1 列設置 93 4.6.2 動態內容 94 4.6.3 組合式用戶界面 96 4.7 結束語 97 第5章 內容 99 5.1 理解內容控件 99 5.1.1 Content屬性 101 5.1.2 對齊內容 102 5.1.3 WPF內容原則 103 5.2 特殊包容器控件 104 5.2.1 ScrollViewer包容器控件 104 5.2.2 GroupBox和TabItem: 帶標題的內容控件 107 5.2.3 Expander控件 109 5.3 裝飾控件 112 5.3.1 Border控件 112 5.3.2 Viewbox控件 113 5.4 結束語 115 第6章 依賴項屬性和路由事件 116 6.1 理解依賴項屬性 116 6.1.1 定義和注冊依賴項屬性 117 6.1.2 WPF使用依賴項屬性的方式 124 6.2 理解路由事件 126 6.2.1 定義和注冊路由事件 126 6.2.2 關聯事件處理程序 128 6.2.3 事件路由 129 6.3 WPF事件 137 6.3.1 生命周期事件 137 6.3.2 輸入事件 139 6.3.3 鍵盤輸入 140 6.3.4 鼠標輸入 145 6.4 結束語 149 第7章 經典控件 151 7.1 控件類 151 7.1.1 背景畫刷和前景畫刷 151 7.1.2 字體 155 7.1.3 鼠標光標 159 7.2 內容控件 160 7.2.1 標簽 160 7.2.2 按鈕 161 7.2.3 工具提示 164 7.3 文本控件 170 7.3.1 多行文本 171 7.3.2 選擇文本 172 7.3.3 TextBox控件的其他特征 172 7.3.4 PasswordBox控件 173 7.4 列表控件 174 7.4.1 ListBox控件 174 7.4.2 ComboBox控件 177 7.5 基于范圍的控件 178 7.5.1 Slider控件 178 7.5.2 進度條 179 7.6 結束語 180 第8章 窗口 181 8.1 Window類 181 8.1.1 顯示窗口 183 8.1.2 定位窗口 184 8.1.3 保存和恢復窗口位置 185 8.2 窗口交互 187 8.2.1 窗口所有權 188 8.2.2 對話框模型 189 8.2.3 通用對話框 190 8.3 非矩形窗口 191 8.3.1 簡單形狀窗口 191 8.3.2 具有形狀內容的透明窗口 194 8.3.3 移動任意形狀窗口 195 8.3.4 改變任意形狀窗口的尺寸 196 8.4 Vista風格的窗口 197 8.4.1 使用Windows Vista玻璃效果 198 8.4.2 任務對話框和文件對話框 202 8.5 結束語 204 第9章 頁面和導航 205 9.1 理解基于頁面的導航 205 9.2 基于頁面的用戶界面 206 9.2.1 一個具有導航功能的基于頁面的簡單應用程序 206 9.2.2 Page類 208 9.2.3 超鏈接 209 9.2.4 在一個框架中宿主頁面 211 9.2.5 在另外一個頁面中宿主頁面 212 9.2.6 在Web瀏覽器中宿主頁面 213 9.3 頁面歷史 214 9.3.1 深入分析WPF中的URI 214 9.3.2 導航歷史 215 9.3.3 維護自定義的屬性 216 9.4 導航服務 217 9.4.1 通過編程進行導航 217 9.4.2 導航事件 218 9.4.3 管理日志 219 9.4.4 向日志添加自定義項 221 9.4.5 頁函數 225 9.5 XAML瀏覽器應用程序 227 9.5.1 XBAP應用程序的運行要求 228 9.5.2 創建XBAP應用程序 229 9.5.3 部署XBAP應用程序 230 9.5.4 更新XBAP應用程序 231 9.5.5 XBAP應用程序的安全性 232 9.5.6 完全信任的XBAP應用程序 233 9.5.7 聯合XBAP應用程序和標準的單機應用程序 234 9.5.8 為不同的安全級別編寫代碼 234 9.5.9 在Web頁面中嵌入XBAP應用程序 239 9.6 結束語 240 第10章 命令 241 10.1 理解命令 241 10.2 WPF命令模型 243 10.2.1 ICommand接口 243 10.2.2 RoutedCommand類 244 10.2.3 RoutedUICommand類 245 10.2.4 命令庫 245 10.3 執行命令 246 10.3.1 命令源 246 10.3.2 命令綁定 247 10.3.3 使用多命令源 249 10.3.4 微調命令文本 250 10.3.5 直接調用命令 251 10.3.6 禁用命令 252 10.3.7 具有內置命令的控件 253 10.4 高級命令 255 10.4.1 自定義命令 255 10.4.2 在不同的位置使用相同的命令 257 10.4.3 使用命令參數 259 10.4.4 跟蹤和翻轉命令 259 10.5 結束語 263 第11章 資源 264 11.1 程序集資源 264 11.1.1 添加資源 264 11.1.2 檢索資源 266 11.1.3 pack URI 267 11.1.4 內容文件 268 11.2 本地化 269 11.2.1 構建本地化用戶界面 269 11.2.2 使應用程序為本地化做好準備 270 11.2.3 翻譯過程 271 11.3 對象資源 276 11.3.1 資源集合 276 11.3.2 資源層次 277 11.3.3 靜態資源和動態資源 279 11.3.4 非共享資源 280 11.3.5 通過代碼訪問資源 280 11.3.6 應用程序資源 281 11.3.7 系統資源 281 11.3.8 使用資源字典組織資源 283 11.3.9 在程序集之間共享資源 284 11.4 結束語 287 第12章 樣式 288 12.1 樣式基礎 288 12.1.1 創建樣式對象 291 12.1.2 設置屬性 292 12.1.3 關聯事件處理程序 293 12.1.4 多層樣式 294 12.1.5 通過類型自動應用樣式 296 12.2 觸發器 297 12.2.1 簡單觸發器 297 12.2.2 事件觸發器 299 12.3 結束語 301 第13章 形狀.變換和畫刷 302 13.1 理解形狀 302 13.1.1 Shape類 303 13.1.2 矩形和橢圓 304 13.1.3 改變形狀的尺寸和放置形狀.. 305 13.1.4 直線 309 13.1.5 折線 310 13.1.6 多邊形 311 13.1.7 直線線帽和直線交點 313 13.1.8 點劃線 314 13.1.9 像素對齊 315 13.2 變換 316 13.2.1 變換形狀 317 13.2.2 變換元素 318 13.3 更好的畫刷 319 13.3.1 LinearGradientBrush畫刷 320 13.3.2 RadialGradientBrush畫刷 322 13.3.3 ImageBrush畫刷 323 13.3.4 平鋪的ImageBrush畫刷 325 13.3.5 VisualBrush畫刷 327 13.3.6 透明掩碼 328 13.4 位圖效果 330 13.4.1 模糊效果 331 13.4.2 斜面邊緣效果 331 13.4.3 浮雕邊緣效果 332 13.4.4 光環和陰影 332 13.5 結束語 334 第14章 圖形.圖畫和可視化對象 335 14.1 路徑和圖形 335 14.1.1 直線.矩形和橢圓圖形 336 14.1.2 使用GeometryGroup組合形狀 337 14.1.3 使用CombinedGeometry融合圖形 339 14.1.4 使用PathGeometry繪制曲線和直線 341 14.1.5 微語言圖形 345 14.1.6 使用圖形進行剪裁 347 14.2 圖畫 348 14.2.1 顯示圖畫 350 14.2.2 導出插圖 352 14.3 可視化對象 353 14.3.1 繪制可視化對象 354 14.3.2 在元素中包裝可視化對象 355 14.3.3 命中測試 358 14.3.4 復雜的命中測試 360 14.4 結束語 363 第15章 控件模板 364 15.1 理解邏輯樹和可視化樹 364 15.2 理解模板 369 15.2.1 修飾類 371 15.2.2 剖析控件 372 15.3 創建控件模板 375 15.3.1 簡單按鈕模板 375 15.3.2 模板綁定 376 15.3.3 模板觸發器 378 15.4 組織模板資源 380 15.4.1 分解按鈕控件的模板 381 15.4.2 通過樣式應用模板 383 15.4.3 自動應用模板 384 15.4.4 由用戶選擇的皮膚 385 15.5 構建更復雜的模板 387 15.5.1 多部分模板 387 15.5.2 ItemsControl控件中的控件模板 388 15.5.3 修改滾動條 390 15.5.4 創建自定義窗口 394 15.5.5 SimpleStyle示例項目 398 15.6 結束語 400 第16章 數據綁定 401 16.1 數據綁定基礎 401 16.1.1 綁定到元素的屬性 401 16.1.2 使用代碼創建綁定 404 16.1.3 多綁定 405 16.1.4 綁定方向 408 16.1.5 綁定更新 410 16.1.6 綁定到非元素對象 411 16.2 使用自定義對象綁定到數據庫 414 16.2.1 構建數據訪問組件 414 16.2.2 構建數據對象 417 16.2.3 顯示綁定對象 418 16.2.4 更新數據庫 419 16.2.5 更改通知 420 16.3 綁定到對象集合 422 16.3.1 顯示和編輯集合元素 422 16.3.2 插入和移除集合元素 425 16.3.3 綁定到ADO.NET對象 426 16.3.4 綁定到LINQ表達式 428 16.4 數據轉換 430 16.4.1 使用值轉換器格式化字符串 431 16.4.2 使用值轉換器創建對象 434 16.4.3 應用條件格式化 436 16.4.4 評估多個屬性 438 16.5 驗證 439 16.5.1 在數據對象中進行驗證 439 16.5.2 自定義驗證規則 443 16.5.3 響應驗證錯誤 445 16.5.4 獲取異常列表 445 16.5.5 顯示不同的錯誤指示符號 446 16.6 結束語 449 第17章 數據模板.數據視圖和數據提供者 451 17.1 數據綁定回顧 451 17.2 數據模板 452 17.2.1 分離和重用模板 454 17.2.2 更高級的模板 455 17.2.3 改變模板 457 17.2.4 模板選擇器 458 17.2.5 模板與選擇 462 17.2.6 樣式選擇器 466 17.2.7 改變元素布局 468 17.3 數據視圖 469 17.3.1 檢索視圖對象 470 17.3.2 過濾集合 470 17.3.3 過濾DataTable對象 473 17.3.4 排序 474 17.3.5 分組 475 17.3.6 聲明式地創建視圖 478 17.3.7 視圖導航 480 17.4 數據提供者 483 17.4.1 ObjectDataProvider 484 17.4.2 XmlDataProvider 486 17.5 結束語 488 第18章 列表.樹.工具條和菜單 489 18.1 ItemsControl類 489 18.1.1 ComboBox控件 492 18.1.2 包含復選框或單選按鈕的ListBox控件 495 18.2 ListView控件 497 18.2.1 使用GirdView視圖創建列 499 18.2.2 改變列的尺寸 500 18.2.3 單元格模板 500 18.2.4 創建自定義視圖 503 18.3 TreeView控件 510 18.3.1 使用數據綁定的TreeView控件 511 18.3.2 將DataSet對象綁定到樹視圖 514 18.3.3 即時節點創建 515 18.4 菜單 518 18.4.1 Menu類 518 18.4.2 菜單項 519 18.4.3 ContextMenu類 520 18.4.4 菜單分隔條 521 18.5 工具條和狀態欄 522 18.5.1 ToolBar控件 522 18.5.2 StatusBar控件 525 18.6 結束語 526 第19章 文檔 527 19.1 理解文檔 527 19.2 流文檔 528 19.2.1 流內容元素 529 19.2.2 格式化流內容元素 530 19.2.3 創建簡單的流文檔 532 19.2.4 塊級別元素 533 19.2.5 內聯級別元素 538 19.2.6 通過代碼與元素進行交互 543 19.2.7 調整文本 547 19.3 只讀流文檔包容器 548 19.3.1 縮放 549 19.3.2 頁面和列 549 19.3.3 從文件加載文檔 552 19.3.4 打印 552 19.4 編輯流文檔 553 19.4.1 加載文件 553 19.4.2 保存文件 555 19.4.3 格式化選擇的文本 556 19.4.4 獲取單個單詞 558 19.5 固定文檔 559 19.6 批注 561 19.6.1 批注類 562 19.6.2 啟用批注服務 562 19.6.3 創建批注 563 19.6.4 檢查批注 567 19.6.5 響應批注更改 569 19.6.6 在固定文檔中保存批注 570 19.6.7 自定義便箋外觀 571 19.7 結束語 572 第20章 打印 573 20.1 基本打印 573 20.1.1 打印元素 574 20.1.2 變換打印輸出 576 20.1.3 打印不顯示的元素 578 20.1.4 打印文檔 579 20.1.5 在文檔打印輸出中控制頁面 582 20.2 自定義打印 584 20.2.1 使用可視化層中的類進行打印 584 20.2.2 自定義多頁打印 587 20.3 打印設置和管理 592 20.3.1 保存打印設置 592 20.3.2 打印頁面范圍 593 20.3.3 管理打印隊列 593 20.4 通過XPS進行打印 596 20.4.1 為打印預覽創建XPS文檔 597 20.4.2 通過XPS直接打印到打印機 598 20.4.3 異步打印 598 20.5 結束語 599 第21章 動畫 600 21.1 理解WPF動畫 600 21.1.1 基于時間的動畫 600 21.1.2 基于屬性的動畫 601 21.2 基本動畫 602 21.2.1 Animation類 602 21.2.2 使用代碼創建動畫 605 21.2.3 同時發生的動畫 609 21.2.4 動畫生命期 610 21.2.5 Timeline類 611 21.3 聲明式動畫和故事板 614 21.3.1 故事板 614 21.3.2 事件觸發器 615 21.3.3 重疊動畫 619 21.3.4 同時發生的動畫 620 21.3.5 控制播放 620 21.3.6 監視動畫進度 624 21.3.7 期望的幀速率 626 21.4 動畫類型回顧 628 21.4.1 使用動畫改變變換 629 21.4.2 使用動畫改變畫刷 633 21.4.3 關鍵幀動畫 635 21.4.4 基于路徑的動畫 638 21.4.5 基于幀的動畫 640 21.5 結束語 644 第22章 聲音和視頻 645 22.1 播放WAV音頻 645 22.1.1 SoundPlayer類 646 22.1.2 SoundPlayerAction類 647 22.1.3 系統聲音 648 22.2 MediaPlayer類 648 22.3 MediaElement類 650 22.3.1 使用代碼播放音頻 650 22.3.2 處理錯誤 651 22.3.3 使用觸發器播放音頻 652 22.3.4 播放多個聲音 654 22.3.5 改變音量.平衡.速度以及播放位置 655 22.3.6 將動畫同步到音頻 657 22.3.7 播放視頻 658 22.3.8 視頻效果 659 22.4 語音 661 22.4.1 語音合成 662 22.4.2 語音識別 663 22.5 結束語 665 第23章 3D繪圖 666 23.1 3D繪圖基礎 666 23.1.1 視口 667 23.1.2 3D對象 667 23.1.3 攝像機 674 23.2 深入研究3D繪圖 678 23.2.1 著色和法線 679 23.2.2 更加復雜的形狀 682 23.2.3 Model3DGroup集合 683 23.2.4 使用材質 684 23.2.5 紋理映射 686 23.3 交互和動畫 690 23.3.1 變換 690 23.3.2 旋轉 691 23.3.3 飛過 692 23.3.4 跟蹤球 694 23.3.5 命中測試 696 23.3.6 3D表面上的2D元素 700 23.4 結束語 702 第24章 自定義元素 704 24.1 理解WPF中的自定義元素 705 24.2 構建基本的用戶控件 707 24.2.1 定義依賴項屬性 707 24.2.2 定義路由事件 710 24.2.3 添加標記 711 24.2.4 使用控件 713 24.2.5 命令支持 713 24.2.6 深入分析用戶控件 716 24.3 無外觀控件 717 24.3.1 修改顏色拾取器的代碼 717 24.3.2 修改顏色拾取器的標記 718 24.3.3 流線化控件模板 720 24.3.4 特定主題樣式和默認樣式 722 24.4 擴展已有控件 724 24.4.1 理解掩碼編輯控件 724 24.4.2 屏蔽語法 725 24.4.3 MaskedTextProvider類 726 24.4.4 實現一個WPF屏蔽文本框 726 24.4.5 改進MaskedTextBox控件 730 24.5 自定義面板 731 24.5.1 兩步布局處理 732 24.5.2 Canvas面板克隆 734 24.5.3 更好的換行面板 735 24.6 自定義繪圖元素 738 24.6.1 OnRender( )方法 739 24.6.2 評估自定義繪圖 740 24.6.3 自定義繪圖元素 741 24.6.4 自定義裝飾元素 743 24.7 結束語 744 第25章 與Windows窗體的互操作 745 25.1 訪問互操作性 745 25.2 混合窗口和窗體 748 25.2.1 為WPF應用程序添加窗體 748 25.2.2 為Windows窗體應用程序添加WPF窗口 748 25.2.3 顯示模態窗口和窗體 749 25.2.4 顯示非模態窗口和窗體 749 25.2.5 Windows窗體控件的可視化風格 750 25.2.6 不需要互操作性的Windows窗體類 750 25.3 創建具有混合內容的窗口 754 25.3.1 WPF和Windows窗體“空域” 755 25.3.2 在WPF中宿主Windows窗體控件 756 25.3.3 WPF和Windows窗體用戶控件 758 25.3.4 在Windows窗體中宿主WPF控件 759 25.3.5 訪問鍵.助記碼和焦點 761 25.3.6 屬性映射 762 25.4 結束語 764 第26章 多線程和插件 765 26.1 多線程 765 26.1.1 Dispatcher類 766 26.1.2 DispatcherObject類 766 26.1.3 BackgroundWorker類 769 26.2 應用程序插件 775 26.2.1 插件管線 776 26.2.2 使用插件的應用程序 780 26.2.3 與宿主交互 787 26.2.4 可視化插件 792 26.3 結束語 794 第27章 ClickOnce部署 795 27.1 應用程序部署 795 27.1.1 理解ClickOnce 796 27.1.2 ClickOnce安裝模型 796 27.1.3 ClickOnce的局限 798 27.2 簡單的ClickOnce發布 798 27.2.1 選擇位置 799 27.2.2 部署文件 803 27.2.3 安裝ClickOnce應用程序 803 27.2.4 更新ClickOnce應用程序 805 27.3 ClickOnce選項 805 27.3.1 發布版本 806 27.3.2 更新策略 807 27.3.3 發布選項 808 27.4 結束語... 809
|
序: |
|