出版時(shí)間:2011-6 出版社:清華大學(xué) 作者:麥克唐納 譯者:王德才
Tag標(biāo)簽:無
前言
.NET問世之初便引入了一些重要的新技術(shù),包括編寫Web應(yīng)用程序的全新方法(ASP.NET)、連接數(shù)據(jù)庫的全新方法(ADO.NET)、新的類型安全的語言(C#和VB.NET)以及托管的運(yùn)行時(shí)(CLR)。在這些新技術(shù)中,其中的一項(xiàng)重要技術(shù)是Windows窗體,它是用于構(gòu)建Windows應(yīng)用程序的類庫?! ”M管Windows窗體是一個(gè)成熟且功能完整的工具包,但它使用的是在過去十年中基本沒有變化的Windows技術(shù)。最重要的是,Windows窗體依靠Windows API創(chuàng)建標(biāo)準(zhǔn)用戶界面元素的可視化外觀,如按鈕、文本框和復(fù)選框等。所以,這些要素在本質(zhì)上是不可定制的?! ±?,如果希望創(chuàng)建一個(gè)外觀時(shí)髦的光暈按鈕,需要?jiǎng)?chuàng)建一個(gè)自定義控件,并使用低級(jí)的繪圖模型為按鈕(各種不同的狀態(tài))繪制各個(gè)方面的細(xì)節(jié)。更糟糕的是,普通窗口被切割成不同的區(qū)域,每個(gè)控件完全擁有自己的區(qū)域。所以,沒有比較好的繪制方法可將一個(gè)控件的內(nèi)容(如按鈕背后的輝光效果)延伸到其他控件所占的區(qū)域中。更不要指望實(shí)現(xiàn)動(dòng)畫效果,如旋轉(zhuǎn)文本、閃爍按鈕、收縮窗口以及實(shí)時(shí)預(yù)覽等,因?yàn)閷?duì)于這些效果必須手工繪制每個(gè)細(xì)節(jié)?! indows演示基礎(chǔ)(Windows Presentation Foundation,WPF)通過引入一個(gè)使用完全不同技術(shù)的新模型改變了所有這一切。盡管WPF也提供了熟悉的標(biāo)準(zhǔn)控件,但是它“自行”繪制每個(gè)文本、邊框和背景填充。所以,WPF能提供更強(qiáng)大的功能,可以改變渲染屏幕上所有內(nèi)容的方式。使用這些特性,可以重新設(shè)置常見控件的樣式(如按鈕),并且通常不需要編寫任何代碼。同樣,可以使用變換對(duì)象旋轉(zhuǎn)、拉伸、縮放以及扭曲用戶界面中的所有內(nèi)容,甚至可以使用WPF動(dòng)畫系統(tǒng)對(duì)用戶界面中的內(nèi)容進(jìn)行變換。并且因?yàn)閃PF引擎將在窗口上渲染的內(nèi)容作為單獨(dú)操作的一部分,所以它能夠處理任意多層相互重疊的控件,即使這些控件具有不規(guī)則的形狀且是半透明的也同樣如此?! ≡赪PF這些新特性的背后是基于DirectX的功能強(qiáng)大的基礎(chǔ)結(jié)構(gòu),DirectX是一套硬件加速的圖形API,通常用于開發(fā)最前沿的計(jì)算機(jī)游戲。這意味著可以使用豐富的圖形效果,而不會(huì)損失性能,而使用Windows窗體實(shí)現(xiàn)這類效果會(huì)嚴(yán)重影響程序運(yùn)行的性能。實(shí)際上,甚至可以使用更高級(jí)特性,例如,對(duì)視頻文件和3D內(nèi)容的支持。使用這些特性(以及優(yōu)秀的設(shè)計(jì)工具),可以創(chuàng)建出賞心悅目的用戶界面和可視化效果,而使用Windows窗體技術(shù)是無法實(shí)現(xiàn)這些效果的?! ”M管通常最關(guān)注WPF中最前沿的視頻、動(dòng)畫以及3D特性,但有必要指出,可以使用WPF的標(biāo)準(zhǔn)控件和簡(jiǎn)單的可視化外觀來構(gòu)建常規(guī)Windows應(yīng)用程序。實(shí)際上,使用WPF中的通用控件與使用Windows窗體中的通用控件同樣容易。更值得一提的是,WPF增強(qiáng)了商業(yè)開發(fā)人員所需要的特性,包括大幅改進(jìn)的數(shù)據(jù)綁定模型、一套用于打印以及管理打印隊(duì)列的新類,以及用于顯示大量格式化文本的文檔特性。甚至提供了用于構(gòu)建基于頁面的應(yīng)用程序的模型,這種應(yīng)用程序可以在Internet Explorer中無縫地運(yùn)行,并且能夠從Web站點(diǎn)加載,所有這些操作都不會(huì)出現(xiàn)常見的安全警告和令人討厭的安裝提示。 總之,WPF將以前Windows開發(fā)領(lǐng)域中的精華和當(dāng)今的創(chuàng)新技術(shù)融為一體,來構(gòu)建現(xiàn)代的、富圖形用戶界面。盡管Windows窗體應(yīng)用程序還將繼續(xù)維持?jǐn)?shù)年,但是從事新的Windows開發(fā)項(xiàng)目的開發(fā)人員應(yīng)當(dāng)首選WPF。 關(guān)于本書 本書針對(duì)了解.NET平臺(tái)、C#語言以及Visual Studio開發(fā)環(huán)境的專業(yè)開發(fā)人員,深入分析了WPF。在學(xué)習(xí)本書前,不需要具備使用以前版本W(wǎng)PF的經(jīng)驗(yàn),而使用過WPF的開發(fā)人員可以通過閱讀每章開頭“新增功能”中突出顯示的WPF新特性?! ”緯婷枋隽怂蠾PF的主要特性,從XAML(用于定義WPF用戶界面的標(biāo)記語言)到3D繪圖和動(dòng)畫。本書很少編寫涉及.NET Framework其他特性的代碼,如用于查詢數(shù)據(jù)庫的ADO.NET類。本書中不討論這些內(nèi)容。但如果需要更多有關(guān).NET而非特定于WPF的特性,請(qǐng)參考Apress出版的許多專門介紹.NET的書籍?! ?nèi)容概述 本書一共包括33章。如果剛開始學(xué)習(xí)WPF,將會(huì)發(fā)現(xiàn)按照章節(jié)順序閱讀本書是最容易的方法,因?yàn)楹罄m(xù)章節(jié)常用到前面章節(jié)中演示的技術(shù)?! ∠旅媸潜緯恳徽碌闹饕獌?nèi)容: 第1章:WPF概述 介紹WPF的體系結(jié)構(gòu),WPF的DirectX基礎(chǔ)設(shè)施,以及新的能夠自動(dòng)改變用戶界面尺寸的設(shè)備無關(guān)度量系統(tǒng)?! 〉?章:XAML 介紹用于定義用戶界面的XAML標(biāo)準(zhǔn)。該章將討論為什么創(chuàng)建XAML以及它的工作原理,并且將使用不同的編碼方法創(chuàng)建一個(gè)基本的WPF窗口?! 〉?章:布局 深入研究在WPF窗口中用于組織元素的布局面板。該章將分析不同的布局策略,并且將構(gòu)建一些普通類型的窗口?! 〉?章:依賴項(xiàng)屬性 介紹WPF如何使用依賴項(xiàng)屬性來支持重要特性,如數(shù)據(jù)綁定和動(dòng)畫。 第5章:路由事件 介紹WPF如何使用事件路由在用戶界面元素中發(fā)送冒泡路由事件或隧道路由事件。還介紹所有WPF元素都支持的一組基本鼠標(biāo)、鍵盤以及多點(diǎn)觸控事件?! 〉?章:控件 分析所有Windows開發(fā)人員都非常熟悉的控件,如按鈕、文本框和標(biāo)簽,還討論它們?cè)赪PF中的區(qū)別?! 〉?章:Application類 介紹WPF應(yīng)用程序模型。在該章將會(huì)看到如何創(chuàng)建單實(shí)例和基于文檔的WPF應(yīng)用程序。 第8章:元素綁定 介紹WPF數(shù)據(jù)綁定。在該章將會(huì)看到如何將任意類型的對(duì)象綁定到用戶界面。 第9章:命令 介紹WPF命令模型,使用WPF命令模型可將多個(gè)控件連接到同一個(gè)邏輯操作?! 〉?0章:資源 介紹如何使用資源在程序集中嵌入二進(jìn)制文件,以及如何在整個(gè)用戶界面中重用重要的對(duì)象?! 〉?1章:樣式和行為 解釋W(xué)PF樣式系統(tǒng),使用WPF樣式可以為一整組控件應(yīng)用一套通用屬性值?! 〉?2章:形狀、畫刷和變換 介紹WPF中的2D繪圖模型。在該章將學(xué)習(xí)如何創(chuàng)建形狀、使用變換改變?cè)?,以及使用漸變畫刷、圖像畫刷和平鋪圖像畫刷繪制特殊效果?! 〉?3章:幾何圖形和圖畫 深入分析2D繪圖。在該章將學(xué)習(xí)如何創(chuàng)建包含弧線和曲線的復(fù)雜路徑,以及如何高效地使用復(fù)雜圖形。 第14章:效果和可視化對(duì)象 介紹低級(jí)的圖形編程。在該章將使用像素著色器應(yīng)用Photo風(fēng)格的效果,手動(dòng)構(gòu)建位圖,并且為了優(yōu)化繪圖性能使用WPF的可視化層?! 〉?5章:動(dòng)畫基礎(chǔ) 研究WPF的動(dòng)畫框架,通過WPF動(dòng)畫框架可以使用簡(jiǎn)單的、聲明式的標(biāo)記將動(dòng)態(tài)效果集成到應(yīng)用程序中?! 〉?6章:高級(jí)動(dòng)畫 研究了更高級(jí)的動(dòng)畫技術(shù),如關(guān)鍵幀動(dòng)畫、基于路徑的動(dòng)畫以及基于幀的動(dòng)畫。還將分析一個(gè)詳明的示例,展示如何使用代碼創(chuàng)建和管理動(dòng)態(tài)的動(dòng)畫?! 〉?7章:控件模板 介紹如何通過插入一個(gè)定制的模板為任意WPF控件提供動(dòng)態(tài)的新外觀(以及新行為)。還將看到如何使用模板構(gòu)建能夠換膚的應(yīng)用程序?! 〉?8章:自定義元素 研究如何擴(kuò)展現(xiàn)有的WPF控件,以及如何創(chuàng)建自己的控件。在該章中將看到幾個(gè)示例,包括基于模板的顏色拾取器、可翻轉(zhuǎn)的面板、自定義的布局容器,以及執(zhí)行自定義繪圖的裝飾元素。 第19章:數(shù)據(jù)綁定 展示如何從數(shù)據(jù)庫獲取信息,將獲取的信息插入到自定義的數(shù)據(jù)對(duì)象中,并將這些數(shù)據(jù)對(duì)象綁定到WPF控件。還將學(xué)習(xí)如何使用虛擬化技術(shù)提高大型數(shù)據(jù)綁定列表的性能,以及如何使用驗(yàn)證方法捕獲編輯錯(cuò)誤?! 〉?0章:格式化綁定的數(shù)據(jù) 展示將原始數(shù)據(jù)轉(zhuǎn)換為包含圖片、控件以及選擇效果的富數(shù)據(jù)顯示的一些技巧?! 〉?1章:數(shù)據(jù)視圖 分析如何在數(shù)據(jù)綁定窗口中使用視圖在數(shù)據(jù)項(xiàng)中導(dǎo)航,以及應(yīng)用過濾、分類和分組?! 〉?2章:列表、網(wǎng)格和樹 帶您瀏覽WPF中的富數(shù)據(jù)控件,包括ListView、TreeView和DataGrid?! 〉?3章:窗口 分析WPF中窗口的工作原理。在該章還將學(xué)習(xí)如何創(chuàng)建不規(guī)則形狀的窗口,以及如何使用Vista玻璃效果。還將通過定制任務(wù)欄跳轉(zhuǎn)列表、縮略圖以及圖標(biāo)重疊實(shí)現(xiàn)大部分Windows 7特性?! 〉?4章:頁面和導(dǎo)航 介紹如何使用WPF構(gòu)建頁面,以及保持跟蹤導(dǎo)航歷史。該章還將介紹如何構(gòu)建駐留于瀏覽器中的WPF應(yīng)用程序,這種應(yīng)用程序可以從Web站點(diǎn)加載。 第25章:菜單、工具欄和功能區(qū) 分析面向命令的控件,如菜單和工具欄。在該章還將使用可免費(fèi)下載的Ribbon控件嘗試更富有現(xiàn)代氣息的用戶界面?! 〉?6章:聲音和視頻 介紹WPF媒體支持。在該章將會(huì)看到如何控制聲音和視頻的播放,以及如何合成動(dòng)畫和生動(dòng)鮮活的效果?! 〉?7章:3D繪圖 研究WPF中對(duì)繪制3D圖形的支持。在該章將學(xué)習(xí)如何創(chuàng)建和變換3D對(duì)象,以及如何為3D對(duì)象添加動(dòng)畫。甚至還會(huì)看到如何在3D表面上放置可交互的2D控件?! 〉?8章:文檔 介紹WPF富文檔支持。在該章將學(xué)習(xí)如何使用流文檔以盡可能容易閱讀的方式展現(xiàn)大量文本,并將學(xué)習(xí)如何使用固定文檔顯示準(zhǔn)備打印的頁面。甚至還將學(xué)習(xí)如何使用RichTextBox控件提供文檔編輯功能?! 〉?9章:打印 演示W(wǎng)PF的打印模型,通過該打印模型可以在打印文檔中繪制文本和圖形。在該章還將學(xué)習(xí)如何管理頁面設(shè)置和打印隊(duì)列?! 〉?0章:與Windows窗體的交互 分析如何在一個(gè)應(yīng)用程序—— 甚至在一個(gè)窗口中,結(jié)合使用WPF和Windows窗體內(nèi)容。 第31章:多線程 介紹如何創(chuàng)建具有良好響應(yīng)性的、在后臺(tái)執(zhí)行耗時(shí)的WPF應(yīng)用程序。 第32章:插件模型 展示如何創(chuàng)建可擴(kuò)展的、能夠動(dòng)態(tài)發(fā)現(xiàn)和加載獨(dú)立組件的應(yīng)用程序?! 〉?3章:ClickOnce部署 展示如何使用ClickOnce安裝模型部署WPF應(yīng)用程序?! ∈褂帽緯那疤釛l件 為了運(yùn)行WPF 4應(yīng)用程序,計(jì)算機(jī)中必須安裝Windows 7、Windows Vista或帶有Windows XP SP2。還需要.NET Framework 4。為了創(chuàng)建WPF 4應(yīng)用程序(以及為了能夠打開本書中所提供的示例項(xiàng)目),需要安裝Visual Studio 2010,Visual Studio 2010中包含了.NET Framework 4?! ∵€有一種選擇。不使用任何版本的Visual Studio,可以使用Expression Blend(一種面向圖形的設(shè)計(jì)工具)來構(gòu)建和測(cè)試WPF應(yīng)用程序。總之,Expression Blend是面向圖形設(shè)計(jì)人員的工具,他們使用該工具創(chuàng)建絢麗的內(nèi)容;而對(duì)于編寫大量代碼的編程人員來說,Visual Studio則是理想的工具。本書假定使用的是Visual Studio。如果想學(xué)習(xí)更多有關(guān)Expression Blend的內(nèi)容,可以參閱有關(guān)該主題的專門書籍(順便提一下,為使用WPF 4創(chuàng)建應(yīng)用程序,需要Expression Blend 4,在撰寫本書時(shí)它還是一個(gè)beta版本)?! 〈a示例和URL
內(nèi)容概要
本書針對(duì)了解,NET平臺(tái)、C#語言以及Visual
Studio開發(fā)環(huán)境的專業(yè)開發(fā)人員,深入分析了WPF。在學(xué)習(xí)《WPF編程寶典:C#(2010版)》前,不需要具備使用以前版本W(wǎng)PF的經(jīng)驗(yàn),而使用過WPF的開發(fā)人員可以通過閱讀每章開頭“新增功能”中突出顯示的WPF新特性。
本書全面描述了所有WPF的主要特性,從XAML(用于定義WPF用戶界面的標(biāo)記語言)到3D繪圖和動(dòng)畫?!禬PF編程寶典:C#(2010版)》很少編寫涉及.NET
Framework其他特性的代碼,如用于查詢數(shù)據(jù)庫的ADO.NET類。《WPF編程寶典:C#(2010版)》中不討論這些內(nèi)容。但如果需要更多有關(guān).NET而非特定于WPF的特性,請(qǐng)參考Apress出版的許多專門介紹.NET的書籍。
作者簡(jiǎn)介
麥克唐納(Matthew
MacDonald),是一位作家、教育家,也是微軟最有價(jià)值專家。他撰寫了十多本有關(guān).NET編程的書籍,包括Pro
Silverlight 3 in C#(2009年Apress出版)和Pro ASP.NET 3.5
inC#(2007年Apress出版)以及本書的前一版本。目前他與妻子以及兩個(gè)女兒居住在多倫多。
書籍目錄
第1章 WPF概述
1.1 Windows圖形演化
1.1.1 DirectX:新的圖形引擎
1.1.2 硬件加速與WPF
1.2 WPF:高級(jí)API
1.2.1 Windows窗體將繼續(xù)保留
1.2.2 DirectX也將繼續(xù)保留
1.2.3 Silverlight
1.3 分辨率無關(guān)性
1.3.1 WPF單位
1.3.2 系統(tǒng)DPI
1.3.3 位圖和矢量圖形
1.4 WPF體系結(jié)構(gòu)
1.5 WPF4
1.5.1 新特性
1.5.2 WPF工具包
1.5.3 VisualStudio2010
1.6 小結(jié)
第2章 XAML
2.1 理解XAML
2.1.1 WPF之前的圖形用戶界面
2.1.2 XAML變體
2.1.3 XAML編譯
2.2 XAML基礎(chǔ)
2.2.1 XAML名稱空間
2.2.2 代碼隱藏類
2.3 XAML中的屬性和事件
2.3.1 簡(jiǎn)單屬性與類型轉(zhuǎn)換器
2.3.2 復(fù)雜屬性
2.3.3 標(biāo)記擴(kuò)展
2.3.4 附加屬性
2.3.5 嵌套元素
2.3.6 特殊字符與空白
2.3.7 事件
2.3.8 完整的EightBall示例
2.4 使用其他名稱空間中的類型
2.5 加載和編譯XAML
2.5.1 只使用代碼
2.5.2 使用代碼和未經(jīng)編譯的XAML
2.5.3 使用代碼和編譯過的XAML
2.5.4 只使用XAML
2.6 XAML2009
2.6.1 自動(dòng)事件連接
2.6.2 引用
2.6.3 內(nèi)置類型
2.6.4 高級(jí)的對(duì)象創(chuàng)建
2.7 小結(jié)
第3章 布局
3.1 理解WPF中的布局
3.1.1 WPF布局原則
3.1.2 布局過程
3.1.3 布局容器
3.2 使用StaCkPanel面板進(jìn)行簡(jiǎn)單布局
3.2.1 布局屬性
3.2.2 對(duì)齊方式
3.2.3 邊距
3.2.4 最小尺寸、最大尺寸以及顯式地設(shè)置尺寸
3.2.5 Border控件
3.3 wrapPanel面板和DockPanel面板
3.3.1 wrapPanel面板
3.3.2 DockPanel面板
……
第4章 依賴項(xiàng)屬性
第5章 路由事件
第6章 控件
第7章 application類
第8章 元素綁定
第9章 命令
第10章 資源
第11章 樣式和行為
第12章 形狀、畫刷和變換
第13章 幾何圖形和圖畫
第14章 效果和可視比對(duì)象
第15章 動(dòng)畫基礎(chǔ)
第16章 高級(jí)動(dòng)畫
第17章 控件模板
第18章 自定義元素
第19章 數(shù)據(jù)綁定
第20章 格式化綁定的數(shù)據(jù)
第21章 數(shù)據(jù)視圖
第22章 列表、網(wǎng)格和樹
第23章 窗口
第24章 頁面和導(dǎo)航
第25章 菜單、工具欄和功能區(qū)
第26章 聲音和視頻
第27章 3d繪圖
第28章 文檔
第29章 打印
第30章 與windows窗體的交互
第31章 多線程
第32章 插件模型
第33章 clickonce部署
章節(jié)摘錄
版權(quán)頁:插圖:
編輯推薦
《WPF編程寶典:C#(2010版)》:尊敬的讀者:多年來,NET開發(fā)人員一直使用WindowS窗體工具包創(chuàng)建Windows應(yīng)用程序。盡管Windows窗體是一項(xiàng)相當(dāng)成熟的技術(shù),但存在一個(gè)嚴(yán)重的局限性:它依賴于近十年來基本未變的Windows關(guān)鍵組件。WPF改變了這一切。WPF仍然包含您熟悉的標(biāo)準(zhǔn)控件,但它使用性能卓越的DirectX引擎“自行”繪制控件的每個(gè)細(xì)節(jié),可提供一系列令人賞心悅目的新功能。例如,您不必編寫代碼即可定制精美的諸如按鈕的常用控件,還可旋轉(zhuǎn)、拉伸、縮放和扭曲用戶界面元素來制作生動(dòng)鮮活的動(dòng)畫效果。您可以用WPF得心應(yīng)手地完成過去用Windows窗體難以完成甚至幾乎無法完成的任務(wù),如播放媒體文件或創(chuàng)建帶有紋理的三維圖形。WPF 4是迄今為止最激動(dòng)人心的WPF版本。它新增了DataGrid等專業(yè)控件,支持多點(diǎn)觸控屏幕和新任務(wù)欄等Windows 7功能,增強(qiáng)了文本渲染功能,提供了更逼真的動(dòng)畫以及PhotoShop風(fēng)格的像素著色器。《WPF編程寶典——C#2010版》全面介紹WPF平臺(tái),濃墨重彩地描述wPF 4的新功能,將幫助您設(shè)計(jì)、構(gòu)建以及潤(rùn)色WPF作品。無論您是初出茅廬的WPF新手,還是使用過WPF舊版本的WPF專業(yè)人員,《WPF編程寶典:C#(2010版)》都將成為您的良師益友。祝您通過《WPF編程寶典:C#(2010版)》學(xué)到豐富的WPF知識(shí),享受到美妙的編程樂趣!MattheW MacDonald(Microsoft MVP.MCSD)
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載