WPF高級編程

WPF高級編程

《WPF高級編程》是2008年清華大學出版社出版的圖書,作者是安德拉德。

基本介紹

  • 書名:WPF高級編程
  • 又名:Professional WPF Programming
  • 作者::(美國)(Andrade.C.)安德拉德
  • ISBN:9787302183563
  • 頁數:400 頁碼
  • 定價:¥56.00
  • 出版社清華大學出版社
  • 出版時間:2008年
  • 裝幀:平裝
  • 開本:16
WPF高級編程,內容簡介,目錄,序言,

WPF高級編程

作者:(美國)(Andrade.C.)安德拉德 等
譯者:王德才 吳明飛
市場價:¥56.00·出版社:清華大學出版社·頁碼:400 頁碼
·出版日:2008年
·ISBN:9787302183563·版次:1版
·裝幀:平裝
·開本:16
·外文書名:Professional WPF Programming

內容簡介

概述WPF之後,將進入WPF開發技術部分。《WPF高級編程》通過使用Visual Studio創建幾個示例程式,帶領您快速進入應用程式開發。此外,還將介紹XAML—— 創建用戶界面的新標記語言。XAML實際上是獨立於WPF的一項技術,但在WPF中廣泛使用了XAML。
《WPF高級編程》主要介紹WPF開發技術、模式和案例。
《WPF高級編程》以“WPF概述”作為開始。在第1章中,首先回答了“WPF是什麼?”、“如何開始使用WPF?”以及“WPF能夠帶來什麼?”等幾個問題,然後詳細分析了WPF開發平台提供的各個子系統及其圖形特徵。
概述WPF之後,將進入WPF開發技術部分。《WPF高級編程》通過使用Visual Studio創建幾個示例程式,帶領您快速進入應用程式開發。此外,還將介紹XAML—— 創建用戶界面的新標記語言。XAML實際上是獨立於WPF的一項技術,但在WPF中廣泛使用了XAML。
掌握了WPF的基本概念和開發技術之後,《WPF高級編程》將帶領讀者進入設計工具的世界。Microsoft提供了許多引人注目的新的設計工具系列。在《WPF高級編程》中將學習使用新的Microsoft Expression Blend工具。通過使用Expression Blend,可以創建高級的用戶界面,學習實現樣式、布局與動畫。讀者還將發現,將界面設計保存到XAML檔案中,然後在Visual Studio中使用完全相同的標記語言編寫應用程式邏輯是多么的容易。
接下來,將介紹如何使用WPF創建特殊效果,包括點陣圖效果、變換,以及使用畫刷對象創建玻璃或反射效果等。《WPF高級編程》演示了這些技術,並為在應用程式中創建絢麗的可視化元素提供了基礎。
在學習完特殊效果之後,將介紹如何使用WPF創建自定義控制項。WPF提供了一個極好的自定義對象模型,允許運用各種風格和已存在的各種元素模板。該模型是一個令人滿意的新模型,允許將幾乎任何元素放置在另一個元素中。通過這個新功能,在整個創建自定義控制項的過程中,都不會遇到問題。當然,任何事物都不是絕對的,使用WPF創建自定義控制項,也有可能會遇到一些問題。本部分內容包括在什麼情況下需要考慮創建自定義控制項,以及如何創建自定義控制項。
接下來,將進入WPF應用程式的企業套用開發部分。使用WPF可以創建兩種風格的應用程式:基於Windows的單機運行的應用程式與基於Web的應用程式。這兩種類型的程式基於相同的代碼,即XAML與.NET。這意味著為應用程式指定目標主機環境,只需要簡單改變工程檔案的設定並管理這些配置即可。這項功能是非常強大的,在《WPF高級編程》的企業開發主題中,對這一功能進行了全面介紹。
在理解了應用程式模型與配置之後,讀者可能想了解安全問題。WPF的安全基於.NET 2.0的CAS安全模型,與所選擇的應用程式模型以及運行環境也有關。如果WPF程式運行於瀏覽器中,將涉及到Internet區域安全設定。《WPF高級編程》將深入介紹這些內容。
在探討了WPF應用程式開發、配置基礎,並全面分析了WPF應用程式的安全之後,《WPF高級編程》將進入一些高級主題。這些高級主題之一就是如何混合使用Win32與WPF代碼。《WPF高級編程》中將涉及互操作的相關問題。在Win32程式中使用WPF以及在WPF程式中使用Win32都是可行的,《WPF高級編程》將介紹如何實現這一特徵,從而可以使讀者快速掌握如何將WPF用於Win32程式中。
《WPF高級編程》最後深入研究了體系結構、WPF架構、XAML以及多執行緒問題。此外,還介紹了Windows Workflow Foundation(WF)與Windows Communication Foundation(WCF),從而使讀者可以熟悉.NET Framework 3.0的其他組件。在理解了這些重要組件之後,讀者還將學習如何構建一個簡單的WCF服務與一個簡單的WF工作流應用程式。

目錄

第1章 WPF概述 1
1.1 WindowsAPI的簡要歷史 1
1.1.1 平台演化 2
1.1.2 .NETFramework3.0介紹 2
1.2 初識WindowsPresentationFoundation 3
1.2.1 設計指導原則 3
1.2.2 WPF體系結構 5
1.3 XAML 13
1.4 可視化設計工具 16
1.4.1 XamlPad 16
1.4.2 MicrosoftExpressionBlend 17
1.4.3 WPF可視化設計器 18
1.4.4 ElectricRainZAM3D 19
1.4.5 MobiformAurora 19
1.5 小結 20
第2章 WPF與.NET編程 23
2.1 開始 23
2.1.1 需要安裝的軟體 24
2.1.2 WPF應用程式類型 24
2.1.3 第一個WPF應用程式 25
2.2 WPF開發概念 27
2.2.1 XAML 27
2.2.2 Application對象 28
2.2.3 創建用戶界面 30
2.2.4 事件處理 32
2.2.5 使用控制項 38
2.2.6 觸發器 47
2.2.7 語言支持 55
2.2.8 部署 57
2.3 小結 57
第3章 WPF應用程式深入剖析 59
3.1 項目組成 59
3.1.1 App.Manifest 61
3.1.2 AssemblyInfo.cs 61
3.1.3 Resources.resx 63
3.1.4 Settings.settings 63
3.1.5 MyApp.xaml 65
3.2 .NETFramework3.0Windows應用程式 66
3.3 XAML瀏覽器應用程式 68
3.4 WCF服務庫 70
3.5 WPF自定義控制項庫 73
3.6 小結 77
第4章 使用MicrosoftExpression
Blend構建富用戶界面:
第一部分 79
4.1 概述 79
4.2 設計環境 80
4.2.1 工作空間面板 81
4.2.2 藝術板 82
4.2.3 配置環境 83
4.3 項目結構 84
4.3.1 添加一個新項目檔案 84
4.3.2 構建與部署一個項目 85
4.4 創建向量對象 85
4.4.1 形狀 86
4.4.2 路徑 87
4.5 使用屬性面板操作對象 88
4.5.1 變換面板 88
4.5.2 畫刷面板 88
4.5.3 透明性、透明度與可見度 90
4.6 操作文本 91
4.7 管理布局 92
4.7.1 用戶界面布局面板 93
4.7.2 其他布局控制項 95
4.7.3 嵌套布局面板 96
4.8 動畫 96
4.8.1 時間線子面板 96
4.8.2 關鍵幀 98
4.8.3 為對象的屬性添加動畫 98
4.8.4 運動路徑 98
4.8.5 觸發器 99
4.8.6 創建控制項 100
4.8.7 模板 102
4.8.8 樣式 103
4.8.9 狀態 103
4.8.10 導入音頻/視頻媒體 104
4.9 小結 104
第5章 使用MicrosoftExpressionBlend構建富用戶界面:
第二部分 105
5.1 ExpressionBlend工作流 105
5.2 處理用戶輸入 108
5.2.1 鍵盤和滑鼠類 108
5.2.2 事件與事件處理 108
5.2.3 定位 110
5.2.4 命中測試 114
5.3 WPF動畫API 124
5.3.1 動畫類 124
5.3.2 使用代碼通過編程創建動態動畫 124
5.3.3 程式動畫 127
5.4 使用故事板進行互動 132
5.5 WPF繪圖API 134
5.5.1 Geometry類 134
5.5.2 Shape類 134
5.5.3 畫刷 138
5.6 小結 141
第6章 特殊效果 143
6.1 畫刷 144
6.1.1 SolidColorBrash 144
6.1.2 GradientBrush 150
6.1.3 ImageBrush 153
6.1.4 DrawingBrush 155
6.1.5 VisualBrush 156
6.2 點陣圖效果 158
6.3 變換 163
6.3.1 TranslateTransform類 165
6.3.2 ScaleTransform類 168
6.3.3 SkewTransform類 171
6.3.4 RotateTransform類 173
6.3.5 透明掩碼 176
6.4 綜合運用--組合效果 178
6.4.1 具有反射效果的跳躍
小球示例程式 178
6.4.2 動畫圖像觀察器示例程式 184
6.5 小結 190
第7章 自定義控制項 191
7.1 概述 191
7.2 控制項基類 192
7.2.1 UserControl類 193
7.2.2 創建用戶控制項 193
7.3 WPF中的數據綁定 202
7.3.1 綁定標記擴展 202
7.3.2 綁定模式 202
7.3.3 數據模板 204
7.3.4 數據轉換 205
7.4 創建和編輯樣式 207
7.4.1 為樣式指定目標類型 208
7.4.2 繼承和覆蓋樣式 209
7.4.3 樣式觸發器 210
7.5 使用模板定製已有的控制項 212
7.6 小結 215
第8章 WPF企業開發 217
8.1 WPF應用程式模型 218
8.1.1 單機應用程式 219
8.1.2 基於瀏覽器的應用程式 221
8.1.3 安全考慮 230
8.2 狀態管理 231
8.2.1 Application對象 231
8.2.2 獨立存儲 233
8.2.3 狀態管理示例程式 235
8.3 導航 241
8.3.1 導航元素 241
8.3.2 結構化導航 242
8.3.3 導航拓撲 252
8.4 應用程式本地化 269
8.4.1 自動布局指導原則 270
8.4.2 使用格線以達到靈活性 272
8.4.3 本地化屬性和注釋 273
8.5 WPF部署模型 274
8.5.1 生成應用程式 275
8.5.2 部署單機Windows
應用程式 276
8.5.3 部署XAML瀏覽器應用程式 277
8.5.4 部署.NETFramework3.0運行庫 278
8.6 小結 280
第9章 安全性 281
9.1 WPF安全模型 281
9.2 受信任的應用程式與Express應用程式 282
9.3 核心作業系統安全性 282
9.3.1 LUA 282
9.3.2 虛擬化 283
9.3.3 沙箱 283
9.3.4 下一代密碼 283
9.4 CLR安全性 284
9.4.1 代碼訪問安全性 284
9.4.2 臨界代碼方法 291
9.4.3 驗證 292
9.5 MicrosoftInternetExplorer的安全性 293
9.5.1 區域限制 293
9.5.2 XBAP沙箱工作區 294
9.5.3 XAML瀏覽器應用程式的安全性 294
9.6 ClickOnce安全性 301
9.6.1 受信任的發布者 301
9.6.2 個人證書檔案 302
9.7 .NET3.0安全性實用程式 305
9.8 小結 305
第10章 WPF與Win32互動 307
10.1 Win32用戶界面概述 307
10.2 WPF和HWND如何互動操作 308
10.3 在WPF中使用Win32HWND 309
10.4 在Win32應用程式中使用WPF 312
10.5 為WPF添加Windows窗體控制項 314
10.5.1 在代碼中添加WindowsFormsHost 314
10.5.2 在XAML代碼中添加HwndHost 316
10.5.3 為WPF添加ActiveX控制項 316
10.5.4 在XAML代碼中添加ActiveX控制項 321
10.5.5 為Windows窗體添加WPF控制項 322
10.5.6 影響控制項屬性 326
10.6 小結 328
第11章 高級開發主題 329
11.1 WPF體系結構 330
11.1.1 核心子系統 331
11.1.2 WPF執行緒模型 334
11.1.3 桌面視窗管理器 335
11.2 WPF框架 336
11.2.1 Dispatcher對象 337
11.2.2 DependencyObject/DependencyProperty類 337
11.2.3 Application類 338
11.2.4 Freezable類 339
11.2.5 Visual類 339
11.2.6 UIElement類 345
11.2.7 FrameworkElement類 345
11.2.8 Control類 346
11.3 XAML深入分析 347
11.3.1 XAML的後台工作 348
11.3.2 動態操作XAML 352
11.3.3 解析Window1.xaml 356
11.3.4 XAML標記擴展 360
11.3.5 XAML與自定義類型 360
11.4 WPF多執行緒 362
11.4.1 單執行緒應用程式模型 363
11.4.2 執行緒關聯度與DispatcherObject 363
11.4.3 WPF分發器 364
11.4.4 使用單執行緒應用程式 365
11.4.5 異步執行緒 367
11.5 Windows通信基礎WCF 372
11.5.1 服務定向 372
11.5.2 WCF體系結構 373
11.5.3 WCF基礎 374
11.5.4 構建一個WCF服務 376
11.6 Windows工作流基礎 383
11.6.1 工作流定義 384
11.6.2 WF體系結構 384
11.6.3 WF基礎 385
11.7 小結 399
……

序言

對於使用Microsoft技術的開發人員來說,這是一個激動人心的時刻。眾多新平台、新技術以及新工具的不斷湧現,使開發人員的舞台迅速擴大。其中,來自微軟的一個新平台是.NETFramework3.0,WindowsPresentationFoundation(WPF)是該平台的一個核心組件,也是本書的主題。WPF為開發人員和設計人員提供了一個統一的平台,便於他們創建能夠充分利用現代PC硬體設備的圖形功能的多媒體(rich-media)應用程式。
在過去的幾十年中,我們經歷了使用命令行界面的漫長時間。今天的應用程式用戶,希望使用新型的、吸引人的可視化互動界面,其中部分原因是他們在Internet上面對的是媒體和內容都很豐富的用戶界面。WPF正是為迎合這種需求而誕生的,它可以綜合使用多種類型的媒體,包括動畫、視頻和音頻,來創建富用戶界面。此外,通過使用一種新的標記語言XAML和一套新的設計工具MicrosoftExpressionBlend,設計人員和開發人員能夠在開發同一個項目時實現無縫合作,這在以前是不可能的。在WPF推出之前,設計人員創建各種圖形元素,並將這些圖形元素以圖像檔案的形式交給開發人員,然後開發人員使用這些圖形元素構建用戶界面。設計人員可以使用ExpressionBlend設計用戶界面,並將設計模型保存為XAML檔案,然後只需將XAML檔案交給開發人員,開發人員再在VisualStudio中使用WPF編寫代碼即可。
本書將詳細講解WindowsPresentationFoundation的概念和構成組件。通過本書可以學習如何創建富用戶界面,如何使用WPF提供的各種新控制項,以及如何利用WPF提供的新內容模型。本書將探討WPF對象模型,以及WPF新提供的子系統,例如附屬屬性系統(dependencypropertysystem)和事件傳遞模型(routedeventmodel)。在本書中還將介紹如何開發和配置用於桌面和瀏覽器的WPF應用程式。本書中還包括新的XAML語法(XAML是一種為WPF應用程式定義用戶界面的新標記語言,不管這些應用程式是基於Windows環境的還是面向Web的)、ExpressionBlend使用基礎和Microsoft新提供的圖形設計工具。
WPF是一個非常大的平台,本書將儘可能多地涉及其各個方面,我們的目標是使讀者不僅了解WPF平台提供了哪些內容,而且學會如何使用該平台。當然,因為WPF是一個很大的平台,所以本書中不可能囊括全部內容,但是我們力爭讓讀者掌握開始使用WPF的一些基本知識。本書不僅有趣、富有教育性,而且能夠為讀者使用WindowsPresentationFoundation開發富用戶界面打下堅實的基礎。
本書讀者對象
本書主要面向準備學習使用Microsoft新的呈現架構(presentationframework)WPF開發應用程式的.NETFramework開發人員。對於正在考慮使用新的ExpressionBlend系列設計工具的設計人員,以及那些想了解這些工具是如何加強與設計人員合作的開發人員,本書也是很有幫助的。對於沒有.NET開發經驗的程式設計師,本書在學習新的XAML語法上有一定的參考價值。但是對於這部分讀者,書中的大部分內容比較高級,因此建議先學習.NET2.0,作為學習WPF的第一步。
本書適合以下幾類讀者:
●準備學習WPF新平台的Microsoft.NET應用程式開發人員。
●準備研究MicrosoftExpressionBlend工具,學習使用WPF及相關工具所提供的協作特性的設計人員。
此外,熟悉以下相關技術的人員,也很適合閱讀學習本書:
●Microsoft.NETFramework
●C#
●Web服務
●HTML
●CSS
以上讀者,對.NETFramework和C#有一個基本理解是必需的,而熟悉Web服務、HTML標記語言以及CSS概念對於學習本書中的內容有幫助,但不是必需的。對於沒有.NETFramework和C#基礎的開發人員,可先學習《.NETFramework2.0高級編程》和《C#2005高級編程(第4版)》(均由清華大學出版社引進並出版)這一類的書籍。
讀者並不需要逐章學習本書。我們建議先學習第1章至第3章,對WPF和XAML有一個基本理解,然後瀏覽後面的幾章,從中挑選出您感興趣或需要的部分進行學習。
本書組織結構
本書先介紹了相關背景,包括Microsoft為什麼以及怎樣從長期以來使用的Win32平台轉向WPF。然後,對WPF及其核心組件和子系統進行了概述,接下來介紹了ExpressionBlend工具的使用,並通過示例演示了如何創建富用戶界面。後續幾章具體針對與WPF開發相關的各個主題。在本書的最後簡要介紹了與WPF平行的其他兩個組件,這些組件共同構成了.NETFramework3.0這一重要而又強大的平台。
本書各章內容如下所示:
●第1章 WPF概述
對於曾經開發過Windows應用程式的程式設計師而言,本書展示了開發Windows應用程式的一些精彩的新變化。此外,對曾經開發過Web應用程式的程式設計師來說,本書提供的開發方式更令人激動。
Windows Presentation Foundation,也稱做WPF,是下一代圖形平台。基於該平台可以構建運行於Windows Vista之上的Windows應用程式和Web應用程式,Windows Vista是Microsoft最新發布的新一代作業系統。WPF為建立優雅的並且非常靈活的用戶體驗提供了基礎,這種用戶體驗是通過同時使用用戶界面、應用程式邏輯、文檔以及多媒體實現的。
注意:
儘管WPF最初的目標是用於Windows Vista平台,但是作為.NET Framework 3.0(即以前的Win FX)的一部分,WPF也可以在Windows XP和Windows Server 2003平台上使用。
通過使用XAML與Microsoft Expression Designers等工具,應用程式的界面和功能可以得到進一步加強,這些工具使設計人員和開發人員可以同時開發用戶界面與應用程式邏輯,從而共同提供完美的用戶體驗。
本章對WPF進行概述,包括以下內容:
Windows API的演變。
.NET Framework 3.0,基於Windows開發的下一代API。
WPF體系結構與開發模型。
XAML,支持WPF開發的聲明式語言。
開發WPF應用程式的相關工具。
1.1 Windows API的簡要歷史
Windows API為應用程式開發提供了Windows作業系統支持的核心功能,主要用於C/C++語言的開發,Windows API是應用程式和Windows之間最直接的互動機制。
Windows API包含以下功能組合:
基本服務——提供對計算機核心資源的訪問,例如記憶體、檔案系統、設備、處理器以及執行緒等。
●第2章,“WPF與.NET編程”--本章首先介紹了構建與運行WPF應用程式的需求,然後是應用程式的各子系統,例如附屬屬性與事件傳遞系統。此外,還介紹了WPF提供的各種控制項,以及如何使用平台提供的新結構修改和擴展這些控制項。
●第3章,“WPF應用程式深入剖析”--本章介紹了在WPF中可以使用的各種應用程式模型,例如可以獨立運行的與基於瀏覽器的應用程式。對相關程式檔案及配置設定都進行了剖析,從而使讀者可以快速理解並能開發WPF應用程式。
●第4章,“使用MicrosoftExpressionBlend構建富用戶界面:第一部分”--本章介紹了WPF應用程式設計人員可以使用的新工具,重點介紹了MicrosoftExpressionBlend。在本章中讀者可以了解到ExpressionBlend提供的設計環境,以及工程檔案結構。本章內容還包括創建矢量圖形、布局、動畫和控制項。
●第5章,“使用Microsoft ExpressionBlend構建富用戶界面:第二部分”--本章在第4章介紹的相關內容的基礎上,介紹了如何為程式添加互動功能以處理用戶輸入、事件與命中測試。本章還給出了一系列的動畫示例程式,以及與WPF繪圖相關的API。本章還演示了ExpressionBlend與VisualStudio2005提供的協作特性。
●第6章,“特殊效果”--本章探討了WPF提供的豐富功能與特殊效果,包括畫刷、點陣圖效果以及變換等。有了這些功能,使用WPF可以很容易地快速創建富用戶界面。
●第7章,“自定義控制項”--本章專門講解了在WPF中自定義控制項的開發。通過模板與類型的擴展支持,在WPF中自定義控制項所需做的工作是很少的。但是在很多情況下需要創建自定義控制項。本章不僅介紹如何創建自定義控制項,還介紹了如何確定是否使用模板與類型等內置功能的支持。這些內置功能是非常強大的。
●第8章,“WPF企業開發”--本章探討了使用WPF開發企業級應用程式時需要考慮的許多問題。應用程式模型、配置、運行環境、安全考慮、導航、狀態管理以及本地化等內容,在本章中都進行了探討。
●第9章,“安全”--本章探討了WPF的安全特性。WPF應用程式的安全主要與所選擇的程式類型和運行環境有關。本章內容包括作業系統安全、CAS安全、Internet安全沙箱以及ClickOnce安全等。
●第10章,“WPF與Win32互動”--本章主要針對WPF應用程式與已存在的Win32應用程式之間的互動問題。本章將解答如何在Win32應用程式中使用WPF,以及如何在WPF應用程式中使用Win32等問題。通過學習本章,讀者將了解到在WPF與Win32應用程式中HWND的區別。
●第11章,“高級開發主題”--本章將深入研究本書中涉及的有關問題。首先深入分析WPF體系結構,介紹WPF架構中重要的類,例如Application類、DependencyObject類。然後深入探討XAML的語法與結構,以及WPF應用程式中的多執行緒問題。最後,深入分析了.NETFramework3.0的其他兩個組件:WindowsWorkflowFoundation與WindowsCommunicationFoundation。
使用本書的條件
為了開發WPF應用程式,以及創建本書中的示例程式,必須首先安裝以下軟體:
●WindowsSDK
●.NETFramework3.0運行時組件
●帶有OrcasCTPWinFX開發工具的VisualStudio2005或OrcasreleaseofVisualStudio2005
注意:
在本書第2章中將給出上述所需軟體的更多細節,以及介紹如何獲取這些必需的組件。

相關詞條

熱門詞條

聯絡我們