說(shuō)中的入門(mén)者必讀,既然是入門(mén)者,當(dāng)然我選擇了《深入淺出WPF》這本書(shū)...
WPF是微軟未來(lái)的發(fā)展趨勢(shì),自WIN7以來(lái)包括前不久發(fā)布的WIN8,核心還是WPF,在此,將自己的學(xué)習(xí)成果做一個(gè)總結(jié),同時(shí)將自己學(xué)習(xí)積累的東西和廣大博友分享,希望大家能共同進(jìn)步。在文章的結(jié)尾我會(huì)將全系列的源代碼地址提供給大家,有需要的朋友可以下載下來(lái)自己研究研究。
什么是WPF?為什么要學(xué)習(xí)WPF?
WPF 是Windows Presentation Foundation的簡(jiǎn)稱(chēng),顧名思義是專(zhuān)門(mén)用來(lái)寫(xiě)程序表示層的技術(shù)和工具。
為什么要學(xué)習(xí)WPF?
許多朋友也許會(huì)問(wèn):既然表示層技術(shù)那么多,為什么還要推出WPF作為表示層技術(shù)呢?我們?cè)捑W(xué)習(xí)WPF有什么收益和好處呢,這個(gè)問(wèn)題我們從兩個(gè)方面進(jìn)行回答。
首先,只要開(kāi)發(fā)表示層程序就不可避免的要和4種功能性代碼打交道,他們分別是:
數(shù)據(jù)模型:現(xiàn)實(shí)世界中事物和邏輯的抽象。
業(yè)務(wù)邏輯:據(jù)模型之間的關(guān)系和交互。
用戶界面:由控件構(gòu)成,于用戶進(jìn)行交互的界面,用于把數(shù)據(jù)展示給用戶并響應(yīng)用戶輸入。
界面邏輯,控件與控制之間的的關(guān)系和交互。
WPF的功能?
WPF的功能是用來(lái)編寫(xiě)應(yīng)用程序的表示層,至于業(yè)務(wù)邏輯層和數(shù)據(jù)層也有專(zhuān)門(mén)的新技術(shù),比如業(yè)務(wù)邏輯層的新技術(shù)WCF(Windows Communication Foundation)和WF(Windows Workflow Foundation)。微軟用于表示層開(kāi)發(fā)的技術(shù)不算少,包括WPF,Windows Forms,ASP.NET,Silveright等。換句話說(shuō),無(wú)論使用哪種技術(shù)做為表示層技術(shù),程序的邏輯層和數(shù)據(jù)層都是相同的。
WPF和Silveright的關(guān)系
目前,.NET開(kāi)發(fā)人員學(xué)習(xí)WPF回報(bào)是非常高的,原因是在微軟整個(gè)新一代開(kāi)發(fā)框架都能看到它的影子,微軟新一代開(kāi)發(fā)技術(shù)框架包括Windows Presentation Foundation(WPF),Windows Communication Foundation(WCF),Windows Workflow Foundation(WF),在后續(xù)的文章中我們會(huì)專(zhuān)注于將WPF,而WCF的用途是編寫(xiě)分布式應(yīng)用程序的業(yè)務(wù)邏輯層,并以網(wǎng)絡(luò)服務(wù)的形式暴露給客戶端的服務(wù)消費(fèi)者,基于WCF和Entity Framework的WCF Data Service和WCF RIA Service是微軟迄今最佳的數(shù)據(jù)訪問(wèn)層,而這一數(shù)據(jù)的最佳消費(fèi)者就是WPF和Silveright,所以學(xué)習(xí)WPF技術(shù)會(huì)給WCF的學(xué)習(xí)錦上添花。WF的主要作用是設(shè)計(jì)工作流,而設(shè)計(jì)工作流的編程語(yǔ)言正是WPF中界面編程語(yǔ)言----XMAL,學(xué)習(xí)完WPF,WF也就會(huì)了一小半。
如果說(shuō)學(xué)習(xí)完WPF完成以后就學(xué)會(huì)了一小半的WF,那么學(xué)習(xí)完WPF以后,Silveright也就學(xué)會(huì)了80%,為什么這么說(shuō)呢?因?yàn)槲④浽径xSilveright是WPF的子集,是WPF的"網(wǎng)絡(luò)版"(Silveright的開(kāi)發(fā)代號(hào)為WPF/E,意為WPF簡(jiǎn)化版)。為了讓W(xué)PF的瀏覽器跑出來(lái),微軟所做的事情就是在技術(shù)原理不變的情況下對(duì)WPF進(jìn)行瘦身------去掉一些不常用的功能,簡(jiǎn)化一些功能的實(shí)現(xiàn),對(duì)多組實(shí)現(xiàn)同一目的類(lèi)庫(kù)進(jìn)行刪減,只保留一組,在添加一些網(wǎng)絡(luò)通信功能,通過(guò)以下這張表,可以看到Silveright和WPF的技術(shù)重疊率之高:
如今Silveright炙手可熱的另一個(gè)原因是微軟上一代手機(jī)平臺(tái)Windows Phone 7也采用它來(lái)作為開(kāi)發(fā)平臺(tái)(此前的Windows Mobile使用的簡(jiǎn)化版的Windows Form作為開(kāi)發(fā)平臺(tái))。WIndows Phone7中運(yùn)行Silveright與瀏覽器中運(yùn)行Silveright別無(wú)二致,因此學(xué)習(xí)完WPF之后,手機(jī)平臺(tái)上的程序也會(huì)寫(xiě)了。當(dāng)然,Window Phone8將繼續(xù)支持這項(xiàng)技術(shù)。
深入淺出WPF 目錄:
序言
1. 什么是WPF
2. 為什么要學(xué)習(xí)WPF
第一章 XAML概覽
1. XAML是什么?
2. XAML有哪些優(yōu)點(diǎn)
第二章 從零起步認(rèn)識(shí)XAML
1. 新建WPF項(xiàng)目
2. 剖析最簡(jiǎn)單的XAML代碼
第三章 系統(tǒng)學(xué)習(xí)XAML語(yǔ)法
1. XAML文檔的樹(shù)形結(jié)構(gòu)
2. XAML中為對(duì)象屬性賦值的語(yǔ)法
2.1 使用標(biāo)簽的Attribute為對(duì)象屬性賦值
2.2 使用TypeConverter
2.3 屬性元素
2.4 標(biāo)記擴(kuò)展(Markup Extensions)
3. 事件處理器與代碼后置
4. 導(dǎo)入程序集和引用其中的名稱(chēng)空間
5. XAML的注釋
第四章 x名稱(chēng)空間詳解
1. x名稱(chēng)空間里都有什么
2. x名稱(chēng)空間中的Attribute
2.1 x:Class
2.2 x: ClassModifier
2.3 x: Name
2.4 x:FieldModifier
2.5 x:Key
2.6 x:Shared
3. x名稱(chēng)空間中的標(biāo)記擴(kuò)展
3.1 x:Type
3.2 x:Null
3.3 標(biāo)記擴(kuò)展實(shí)例的兩種聲明語(yǔ)法
3.4 x:Array
3.5 x:Static
4. XAML指令元素
第五章 控件與布局
1. 控件到底是什么
2. WPF的內(nèi)容模型
2.1 內(nèi)容與內(nèi)容屬性
3. 各類(lèi)內(nèi)容模型詳解
3.1 ContentControl族
3.2 HeaderedContentControl族
3.3 ItemsControl族
3.4 HeaderedItemsControl族
3.5 Decorator族
3.6 TextBlock和TextBox
3.7 Shape族元素
3.8 Panel族元素
4. UI布局(Layout)
4.1 布局元素
4.2 Grid
4.3 StackPanel
4.4 Canvas
4.5 DockPanel
4.6 WrapPanel
第六章 深入淺出話Binding
1. Data Binding在WPF中的地位
2. Binding基礎(chǔ)
3. Binding的源與路徑
3.1 把控件作為Binding源與Binding標(biāo)記擴(kuò)展
3.2 控制Binding的方向及數(shù)據(jù)更新
3.3 Binding的路徑(Path)
3.4 “沒(méi)有Path”的Binding
3.5 為Binding指定源(Source)的幾種方法
3.6 省略Source的Binding
3.7 使用集合對(duì)象作數(shù)據(jù)源
3.8 使用使用ADO.NET對(duì)象作為Binding的源
3.9 使用使用XML數(shù)據(jù)作為Binding的源
3.10 使用使用LINQ檢索結(jié)果作為數(shù)據(jù)源
3.11 使用ObjectDataProvider
3.12 使用Binding的RelativeSource
4. Binding對(duì)數(shù)據(jù)的轉(zhuǎn)換與校驗(yàn)
4.1 Binding的數(shù)據(jù)校驗(yàn)
4.2 Binding的數(shù)據(jù)轉(zhuǎn)換
5. MultiBinding(多路Binding)
第七章 深入淺話屬性
1. 屬性(Property)的來(lái)龍去脈
2. 依賴(lài)屬性(Dependency Property)
2.1 依賴(lài)屬性對(duì)內(nèi)存的使用方式
2.2 聲明和使用依賴(lài)屬性
2.3 依賴(lài)屬性值存取的秘密
3. 附加屬性(Attached Properties)
第八章 深入淺出話事件
1. 近觀WPF的樹(shù)形結(jié)構(gòu)
2. 事件的來(lái)龍去脈
3. 深入淺出路由事件
3.1 使用WPF內(nèi)置路由事件
3.2 自定義路由事件
3.3 Source與OriginalSource
3.4 事件也附加——深入淺出附加事件
第九章 深入淺出話命令
1. 命令系統(tǒng)的基本元素與關(guān)系
1.1 命令系統(tǒng)的基本元素
1.2 基本元素之間的關(guān)系
1.3 小試命令
1.4 WPF的命令庫(kù)
1.5 命令參數(shù)
1.6 命令與Binding的結(jié)合
2. 近觀命令
2.1 ICommand接口與RoutedCommand
2.2 自定義Command
第十章 深入淺出話資源
1. WPF對(duì)象級(jí)資源的定義與查找
2. 且“靜”且“動(dòng)”用資源
3. 向程序添加二進(jìn)制資源
4. 使用Pack URI路徑訪問(wèn)二進(jìn)制資源
第十一章 深入淺出話模板
1. 模板的內(nèi)涵
2. 數(shù)據(jù)的外衣DataTemplate
3. 控件的外衣ControlTemplate
3.1 庖丁解?纯丶
3.2 ItemsControl的PanelTemplate
4. DataTemplate與ControlTemplate的關(guān)系與應(yīng)用
4.1 DataTemplate與ControlTemplate的關(guān)系
4.2 DataTemplate與ControlTemplate的應(yīng)用
4.3 尋找失落的控件
5. 深入淺出話Style
5.1 Style中的Setter
5.2 Style中的Trigger
第十二章 繪圖和動(dòng)畫(huà)
1. WPF繪圖
1.1 繪制圖形
2. 圖形的效果與濾鏡
2.1 簡(jiǎn)單易用的BitmapEffect
2.2 豐富多彩的Effect
3. 圖形的變形
3.1 呈現(xiàn)變形
3.2 布局變形
4. 動(dòng)畫(huà)
4.1 簡(jiǎn)單獨(dú)立動(dòng)畫(huà)
4.2 場(chǎng)景
4.3 綜合實(shí)例資源