c3.0與net3.5高級編程第7章wpf入門_第1頁
c3.0與net3.5高級編程第7章wpf入門_第2頁
c3.0與net3.5高級編程第7章wpf入門_第3頁
c3.0與net3.5高級編程第7章wpf入門_第4頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

7WPF編程WPFWindowsPresentationFoundationWindows表現(xiàn)層基礎(chǔ),是微軟公司在.NETFramework3.5WPF可以在WindowsVista操作系統(tǒng)平臺上開發(fā)出具有炫目視覺效果的應(yīng)用程序,當(dāng)然也可以應(yīng)用在WindowsXPWindows2003WPF的特點(diǎn)和機(jī)構(gòu)以及如何在.NET3.5框架上應(yīng)用WPF。WPF非常容易上手。WPF提供了非常多的新的概念和技術(shù),將會改變傳統(tǒng)Windows程序員的WindowsVista操作系統(tǒng)下的全新的表現(xiàn)層技術(shù),WPF完美地整合了矢量圖形、提供了一種式編程語言XAML。微軟同時提供了Expression設(shè)計工具,讓設(shè)Windows如果讀者具有多年的Windows程序設(shè)計經(jīng)驗,無論使用何種開發(fā)工具,比如VisualBasic、Delphi、C++等,為了創(chuàng)建Windows用戶界面,都會直接或間接地使用到Windows操User32:提供WindowsGDI/GDI+:提供繪圖API很多應(yīng)用程序開發(fā)框架中,提供UI或繪圖開發(fā)方法都是對這兩個子系A(chǔ)PI的Win32APIBolandVCL、微軟的MFC等。Windows1.0Windows圖形服務(wù)已經(jīng)越來越穩(wěn)固。然而隨著軟件技術(shù)的日益發(fā)展,傳統(tǒng)的圖形UI已經(jīng)越來越難以滿足用戶對界面日益增長AvalonWindowsPresentationFoundation,擺脫了傳統(tǒng)圖形UI開發(fā)的不足,不再基于User32GDI/GDI+DirectX技術(shù)。技術(shù)的復(fù)雜性,以及其與硬件圖形卡的緊密結(jié)合的特性,很少有軟件基于DirectX來進(jìn)行開發(fā)。WPF的出現(xiàn)彌補(bǔ)了這種不足,意味著開發(fā)人員可以在普通的商業(yè)應(yīng)用程序中應(yīng)用一User327.1.3小節(jié)中WPF架構(gòu)時,將會具體討論WPF如何利用DirectX進(jìn)行表示層的呈現(xiàn)。WPF的功能特WPF使用Direct3D進(jìn)行圖形的渲染,充分利用顯卡的GPU,即圖形處理單元面,在不同的顯示分辨率下時,會呈現(xiàn)不同的顯示大小,WPF彌補(bǔ)了這種不足。式的程序設(shè)計:WPF使用全新的XAML標(biāo)記語言,進(jìn)行用戶界面的設(shè)計,配合代碼后置文件來開發(fā)應(yīng)用程序。如果讀者有過ASP.NET程序開發(fā)經(jīng)驗,那么WPF這種開發(fā)方式有點(diǎn)類傳于ASP.NET,一個前端頁面和代碼后置文件。Web風(fēng)格的布局模型:WPF增強(qiáng)了流式布局模型體驗,除了使用特定坐標(biāo)進(jìn)行固豐富的繪圖模型:WPF除了可以處理基本圖形、文本塊之外,還提供了很多的新的繪圖特性,比如真正的透明控件,使用不同的堆疊多個控件以及原生的3D支持特性。原生的多、動畫支持:現(xiàn)在,WPF應(yīng)用程序內(nèi)置了動畫特性。設(shè)計人員可以使用XAML標(biāo)記語言或借助于ExpressionBlend設(shè)計工具來設(shè)計動畫。同時,也可以使用ExpressionBlend設(shè)計多音。這個工具會生成XAML代碼,進(jìn)而豐富WPF應(yīng)用程序的可交互性。樣式和模板特性:類似于ASP.NET中的,或者是CSS樣式特性,使應(yīng)用程序可以重用已有的樣式設(shè)定。模板允許更改任何元素的呈現(xiàn)方式,比如可以通過模板控制Button控件的輸出。基于頁面的應(yīng)用程序:WPF允許開發(fā)人員創(chuàng)建瀏覽器風(fēng)格的應(yīng)用程序,讓用戶使用類似超的方式在頁面中進(jìn)行導(dǎo)航。應(yīng)用程序也可以在瀏覽器中比如FirefoxInternetExplorer中運(yùn)行。WPF處理了很多繁雜的細(xì)節(jié),比如歷史頁面等。WPF架構(gòu)簡WPF7.1WPF分為三層結(jié)構(gòu),最WPFWPF7.1WPFPresentationFramework.dll:在該程序集中放置次的WPF類型,比如窗口、面板以及其他類型的控件。它實現(xiàn)了一些次的抽象,比如樣式等。開發(fā)人員所和DependencyObjectMilcore.dll:這是WPF輸出系統(tǒng)的,也是多整合層的基礎(chǔ)。這個程序集主要用于與DirectX進(jìn)行交互。圖像顯示、縮放bitmmapJPEG。WPF的類層次結(jié)7.2WPF中的基類層次結(jié)構(gòu),在本書的后續(xù)章節(jié)會對由這些基類派生出來的子類進(jìn)行詳細(xì)地介紹。在深入學(xué)習(xí)WPF應(yīng)用程序之前,有必要大概了解一下WPF中的類層次結(jié)WPF的核心命名空間都以System.Windows開始,比如System.Windows,這是WindowsForms編程工具箱的一部分。下面對這些基類進(jìn)行分別介紹,如下所示。System.Threading.DispatcherObject類:WPF用戶界面元素交互時,將會產(chǎn)生不安全的影響。為了簡化這個模型,WPF使用一DispatcherObject派生子類,應(yīng)用程序的用戶界面可以檢7.2WPF基類的類層次結(jié)構(gòu)System.Windows.DependencyObject:WPF主要通過屬性來與界面元素交互。WPF提供了一套強(qiáng)大的屬性系統(tǒng),并使用式的屬性語法。使用屬性的一個例子是賴關(guān)系更改時,會自動重新驗證屬性值。例如,如果具有一個繼承的屬性如System.Windows.Media.VisualVisual類看成是一個圖形對象,WPF中的WPFAPImilcore.dllVisual的任何類都有能System.Windows.UIElement:UIElement定義了WPF的子系統(tǒng),包括布局Layout、輸入Input和Event、焦點(diǎn)等。比如布局,這是WPF的一個。UIElementMeasureArrange兩階段的處理Panel控件時將會進(jìn)行詳細(xì)地介紹。UIElement引入了增強(qiáng)的事件傳遞系統(tǒng),稱為路由。路由可以將上下沿傳遞。本書在討論依賴System.Windows.FrameworkElement:作為WPF繼承層次樹的終止點(diǎn),F(xiàn)rameworkElementUIElement僅定義的成員。比如,UIElement設(shè)置WPF布局系統(tǒng)的基礎(chǔ),而FrameworkElement則包括幾個關(guān)鍵的屬性提供對布System.Windows.Shapes.Shape:基本的形狀類,比如從該類派生的Rectangle、Polygon、Ellipse、Line和Path等。TextBox、ButtonListBox等。Control類添加了一些屬性比如設(shè)置字體、前景色和背景色等。別外,Control類還提供了對控件模板的支持,允許開發(fā)人員使用自注意:WindowsForms不同的是WindowsForms中,每個呈現(xiàn)在Form上的對象WPF則與之不同,可視化對象稱為元素,只有能夠接收焦點(diǎn)并System.Windows.Controls.ContentControl:這是WPF中一個非常重要的基類。ContentControl是其他內(nèi)容控件繼承自的類,用來呈現(xiàn)單塊內(nèi)容。派生自ContentControlContent屬性。ContentObject,因此,在ContentControl中可以放置的內(nèi)容沒有任何限制??梢允褂每蓴U(kuò)展應(yīng)用程序標(biāo)記語言(XAML)或代碼來設(shè)置Content。System.Windows.Controls.ItemsControl:這是所有集合項控件的基類,比如WPF前面介紹了太多的理論知識,現(xiàn)在來介紹開發(fā)WPF的工具。一般經(jīng)常使用的開發(fā)工具有如下4個:VisualStudio2008、ExpressionBlend、XAMLPad標(biāo)記文本查看器和ZAM3D。VisualStudio2008WPFVisualStudio2008。VisualStudio2008提WPF7.37.3中可以看到,VisualStudio2008提供了如下所示的4種WPF項目模板。WPFWindowsFormsexe為擴(kuò)展名的類似于.NETFramework的其他項目模板,開發(fā)人員可以在VisualStudio中開發(fā)兩種WPFWPFWPF自定義控件庫來為WPF應(yīng)用程序創(chuàng)建可重用的組件。VisualStudio2008WPF的開發(fā)提供了一個所見即所得的XAML設(shè)計窗口,如圖7.4所示。圖7.3VisualStudio2008的WPF項目模 圖7.4VisualStudio2008的XAML設(shè)計窗7.4ASP.NETSplit設(shè)計視圖,開發(fā)人員可以從左側(cè)的XAMLXAML代碼區(qū)將會自動產(chǎn)生通常一個XAML文件會關(guān)聯(lián)到一個代碼后置(Code-Behind)文件,可以通過按下F7鍵序代碼的編寫。VisualStudio2008優(yōu)秀的智能提示和代碼片斷功能,大大提高了開發(fā)的效ExpressionBlendWPF的首選交互式設(shè)計工具,其操作界面非常類似于一款矢量繪圖軟件。Blend主要用于設(shè)計WPF應(yīng)用程序的交互式設(shè)計。設(shè)計人員可以使用ExpressionDesignXAMLBlendXAML文件,在Blend中設(shè)計交互以及動畫。界面如圖7.5所示。 圖 ExpressionBlend設(shè)計工用戶界面的設(shè)計。ExpressionBlend的“新建項目”框如圖7.6所示。應(yīng)用程序,一種是控件庫。當(dāng)設(shè)計人員在Expression中設(shè)計好WPF應(yīng)用程序的外觀后,可以直接導(dǎo)入到VisualStudio2008/XAMLPad標(biāo)記文本查看的視覺呈現(xiàn),其界面如圖7.7所示。圖7.6ExpressionBlend的“新建項目” 圖7.7XAMLPad工XAML文本呈現(xiàn)的內(nèi)容。在右側(cè),XAMLPadXAML文本的視覺樹和屬性樹。在本書后面的內(nèi)容中會詳細(xì)討論這兩個WPF中的重要概念。使用XAMLPad,開發(fā)人員可以最近一次使用的XAML文本。XAMLPadXAML語法,并重新顯示新的XAMLWindowsF5鍵,XAMLPad會自動彈出一PageXAML會自動的呈現(xiàn)在上方的XAMLPad幫助ZAM3D第工具(3D模型ZAM3D是一款功能強(qiáng)大的創(chuàng)建WPF3D圖形的第工具。該工具可以將3D模型XAML格式,然后可以使用ExpressionBlendDesign來3DZAM3D工具,設(shè)計人員可以進(jìn)行三維建模,設(shè)計三維動畫,然后將結(jié)果導(dǎo)出為XAML的格式。ZAM3D操作界面如圖7.87.8ZAM3D操作界讀者可以從ht /products/ZAM3D/DefaultPDC.asp或取更詳細(xì)的信息,并且可以在該上相關(guān)的Demo來進(jìn)行學(xué)習(xí)。VisualStudio2008WPFWindows應(yīng)用程序,然后會VisualStudio2008WPF項目模板來WPF應(yīng)用程序。首WPF項目模板來創(chuàng)建一個簡單的oWPF示例項目,步打開VisualStudio2008,如果讀者的機(jī)器上尚未安裝,可以到下面的這個進(jìn) 命令,將彈出如圖7.9所示的“新建項目”框,在該框中選擇Windows項目,選擇“WPF應(yīng)用程序”選項。將該項目命名為oWPF,單擊“確定”按鈕,VisualStudio2008將進(jìn)入WPF的默認(rèn)窗口設(shè)計窗口。從左側(cè)的工具箱中拖動一個按鈕到VS2008的窗口設(shè)計視圖中??梢钥吹剑赬AML視圖區(qū)會自動地添加相應(yīng)的XAML代碼。開發(fā)人員也可以不管設(shè)計視圖,直XAML代碼,VS2008的智能提示功能非常的完美。為了查看設(shè)計XAMLButtonVS2008生成的代碼的區(qū)別。這是一種非常好的學(xué)習(xí)XAML的方式。在VS2008Name屬性為btno,設(shè)置其ContentoWPF7.10圖7.9新建WPF應(yīng)用程序項 圖7.10在屬性編輯器中設(shè)置按鈕的屬btno按鈕,VS2008會自動切換到后置代碼(Code-Behind)窗口,并生成了單擊框架。在其中添加一個MessageBox方法,用于當(dāng)用戶單擊按鈕后,彈出一privateprivatevoid{o_Click(objectsender,RoutedEventArgsMessageBox.Show("歡迎學(xué)習(xí)WPF,這是第一WPF應(yīng)用程序}可以看到該單擊的參數(shù)是RoutedEventArgs類型。這是WPF中應(yīng)用廣泛的VS2008自動添加了單擊。如下所示。<Window Title="WPF應(yīng)用示例Height="300<ButtonMargin="108.171,113.625,94.536,125.442" o說明:前面在屬性窗口中的設(shè)置都可以從XAML看到WPFWPF應(yīng)用程序中,是由代碼和標(biāo)記語言的組成,類似于ASP.NET中的HTML元素與代碼后置F5鍵運(yùn)行該示例程序,可以看到非常類似于一個傳統(tǒng)的Win32窗體。當(dāng)單擊oWPF按鈕7.11

7.11WPF標(biāo)準(zhǔn)應(yīng)用程序運(yùn)行效VS2008WPF7.3節(jié)的項目為基礎(chǔ)。當(dāng)使用App.xamlApp.xaml.cs文件:這兩個文件是WPF應(yīng)用程序的應(yīng)用程序的入WPFApplication類的實例化表示。在每一個WPF應(yīng)用程序該類管理著WPF應(yīng)用程序的生命周WPF應(yīng)用程序中創(chuàng)建多個App.xaml文件。7.12WPF解決方法項App.xaml.csWindow1.xamlWindow1.xaml.csVS2008中默認(rèn)生成的窗體文件,WPF應(yīng)用程序可能具有多個窗體、頁面等??梢栽凇敖鉀Q方案資源管理器”中右擊項目名稱,在彈出的快捷菜單中選擇“添加新項”命令來添加的窗體只有理解WPF應(yīng)用程序的結(jié)構(gòu),才能真切地體會到這些文件背后的意義。其實,以便管理應(yīng)用程序的生命期。Windows1.xaml及其代碼后置文件也是可選的,開發(fā)人員可以只創(chuàng)建Windows類的實例,交付給Application類即可。說明:一個WPF應(yīng)用程序通常是由一個XAML文件和一個代碼后置文件組成,這不是絕將會詳細(xì)地介紹XAML語言以及Application類。WPF與.NETFramework3.5通信基礎(chǔ)。WindowsCommunicationFoundation,簡稱為WF的Windows工作流基礎(chǔ)WindowsWorkflowFoundation,以及用于統(tǒng)一驗證的WindowsCardSpace。這些技術(shù)都可以與WPF緊密集成,大大簡化和統(tǒng)一.NET平臺上的應(yīng)用軟件的開發(fā)。WindowsCommunicationFoundation概WindowsCommunicationFoundationWCF,是微軟構(gòu)建面向服務(wù)的應(yīng)用程序而提WCF,將不用關(guān)注一些零散的技術(shù),比如WebService、Remoting以及MSMQ等。這讓開發(fā)熱門的一種開發(fā)觀念,WCF則是微軟SOA的一種編程實現(xiàn)。WCF的主要設(shè)計目標(biāo)有3WCFWPF類似,是基于.NETFramework3.5平臺上的一組類庫。使用這組類庫,開發(fā)人員可以使用熟悉的.NET程序語言開發(fā)分布式應(yīng)用程序。WCF實現(xiàn)上是高效地整合Web服務(wù)、.NET企業(yè)服務(wù)、NETRemotingMSMQ等技術(shù)。開發(fā)員可以使用特性式編程,簡化了不必要的底層復(fù)雜性。WCF的兩個的程序集如下所示。這兩個程序集定義了很多新名空間和類型,讀者可以參考相關(guān)的書籍或者是System.Runtime.SerializationWCF中控制數(shù)據(jù)序列化和反序列化的多個System.ServiceModel.Configuration:定義多個用于編程WCF配置文件的類型System.ServiceModel.Description:定義為WCF配置文件中定義的地址(Addresses,System.ServiceModel.MsmqIntegration:包含與MSMQ一個WCF應(yīng)用程序通常包含3個相關(guān)LL調(diào)用者能夠進(jìn)行通信的類型,也稱為契約WFS2008WF對WF生7.13 圖7.13WCF服務(wù)庫模關(guān)于WCF編程技術(shù)的信息,如果讀者有,可以參考相關(guān)的書籍,這是一個WindowsCardSpace概WindowsCardSpace是一種統(tǒng)一驗證的平臺。這種技術(shù)使用一種統(tǒng)的方法來識別用戶的,解決了用戶擁有繁多的煩惱。隨著互聯(lián)網(wǎng)內(nèi)容的日漸豐富,用戶的選擇性也越來越多,導(dǎo)致所需的用戶名和也越來越多。最讓人頭疼的是也日漸增多。CardSpace技術(shù)被設(shè)計用于解決這些問題。CardSpace是的標(biāo)識元系統(tǒng)的實當(dāng)安裝了.NETFramework3.5之后,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論