這倆年多來(lái)筆者一直在從事關(guān)于WPF的開發(fā)。雖然不能說(shuō)是專家級(jí)別的。但是對(duì)于WPF的應(yīng)用還是有一定的了解。論他的靈活性決對(duì)不在WinForm之下。WPF的出現(xiàn)更是引發(fā)一段熱議。他的何去何從更是讓很多人感到迷茫。因?yàn)槟莻€(gè)時(shí)候可以說(shuō)只有Winow 7才能跟WPF完美的接合??上霾环陼r(shí),XP占了大部分的市場(chǎng)。所以WPF的出生動(dòng)靜很大,可惜后力不足,漸漸的淡淡化他的光芒。于至于網(wǎng)絡(luò)上更是有對(duì)WPF的死亡產(chǎn)生了很大的爭(zhēng)議。但是這并沒(méi)有讓他沉默下去,這幾年來(lái)window 8和window 10的推廣更是讓他起來(lái)的跡象。對(duì)于未來(lái)WPF會(huì)發(fā)展到如何的程度。筆者也不敢猜測(cè)。更多的只是希望他能走的更遠(yuǎn)一點(diǎn)。

如果WPF沒(méi)有WinForm所具有的優(yōu)點(diǎn),那么他也不可能活到現(xiàn)在,更不用說(shuō)還有可能崛起了。所以筆者想開一個(gè)系列來(lái)談?wù)勥@倆年的WPF之旅。希望能給那些正在學(xué)習(xí)WPF或是將要學(xué)習(xí)的同學(xué)們帶來(lái)一些幫助。出于筆者本身的學(xué)習(xí)方式有一點(diǎn)不正統(tǒng)的原因,所以這一系列的文章只能被定義為雜談。

曾經(jīng)有一個(gè)剛剛從事WPF的同事問(wèn)筆者靜態(tài)資源和動(dòng)態(tài)資源有什么不同。筆者傻了幾秒反問(wèn)到什么是靜態(tài)資源,什么是動(dòng)態(tài)資源。這次談話的結(jié)果可想而知——很尷尬。為什么筆者會(huì)不知道靜態(tài)資源和動(dòng)態(tài)資源呢?事實(shí)上筆者沒(méi)有看過(guò)相關(guān)的WPF書籍。那么筆者又是如何學(xué)習(xí)WPF呢?一句話——看開源項(xiàng)目的源碼進(jìn)行學(xué)習(xí)。本來(lái)筆者想把這一系列命名為“WPF 開源項(xiàng)目”。后來(lái)想想有一點(diǎn)自大了,同時(shí)筆者也不知道這一系列要以什么樣子知識(shí)路線來(lái)講解。所以命名"WPF 雜談"顯示平淡一點(diǎn),又可以讓筆者自由的吹牛。

以前用于開發(fā)商業(yè)軟件的技術(shù)有Winform(C#),MFC(C++), Swing(JAVA),Delphi?,F(xiàn)在.NET又都出了一個(gè)WPF。即然有Winform了,為什么.NET又要在來(lái)一個(gè)WPF。筆者曾經(jīng)有想過(guò)這樣子的問(wèn)題??上ЧP者就一個(gè)懶人,后面也沒(méi)有細(xì)細(xì)的去查找原因。WPF的靈動(dòng)是筆者深深喜歡的優(yōu)點(diǎn)之一。和WinForm比起來(lái)筆者只知道他們的圖形引擎不一樣子。這還是從一些書籍里面看到的。WinForm是基于User32/GDI/GDI+,而WPF是基于DirectX引擎的。不用筆者多說(shuō)就明白了——DirectX常常會(huì)在開發(fā)游戲的時(shí)候聽到。所以WPF可以做到很多不錯(cuò)的動(dòng)畫效果。這也是Winform所不能做到。哦!不。應(yīng)該說(shuō)是很難做的。但是筆者到現(xiàn)在還是沒(méi)有多大的應(yīng)用動(dòng)畫效果。主要是筆者從事餐飲行業(yè)。餐廳里面的電腦配置不敢拘同。516內(nèi)存的XP系統(tǒng)是一種常態(tài)。如果你用上動(dòng)畫的話,你注定要為動(dòng)畫的BUG和運(yùn)行性能買單。這說(shuō)明了一問(wèn)題WPF需要有一定的配置環(huán)境。從.NET Framework來(lái)講,還是.NET 4.0來(lái)的開好一點(diǎn)。因?yàn)檫@樣子X(jué)P,Window 7,Window 8還是Window 10都可以做到共用。

筆者之所以可以很快的上手WPF。這里要深深的感謝那些把自己的項(xiàng)目開源出來(lái)的人。這一點(diǎn)國(guó)外的開發(fā)人員還有做的很不錯(cuò)。WPF有很多知識(shí)點(diǎn)在國(guó)內(nèi)是無(wú)法百度到的,所以想要學(xué)好WPF還是要去搞一個(gè)VPN或是自己想辦法跳墻過(guò)去。

SharpDevelop

SharpDevelop是一款用C#開發(fā)的開發(fā)工具。這是筆者第一個(gè)接觸的WPF項(xiàng)目。對(duì)于源碼筆者也只是看過(guò)部分。當(dāng)年筆者是從事JAVA開發(fā)的。對(duì)于JAVA的OSGI思想很感興趣。也曾試著尋找有沒(méi)有.NET大神寫一些類似的框架。只是可惜太少了,有的也是半成品不是真正的OSGI。不過(guò).NET有一個(gè)自己的想法——插件思想。這也是筆者查看他源碼的原因。他雖然沒(méi)有OSGI的思想,可是筆者對(duì)他的插件實(shí)現(xiàn)還是有一定的興趣的。所以有興趣的讀者們可以試著去看一下。好吧。有一點(diǎn)遠(yuǎn)了。SharpDevelop他可以說(shuō)是WPF和Winform的組合體。他有一部分是WPF實(shí)現(xiàn)。而有一些卻是用Winform。當(dāng)然讀者們會(huì)想著這樣子也行。不怕出問(wèn)題嗎?問(wèn)題是不會(huì)太大。只是筆者還是建議不要這樣子用。鬼知道他們倆個(gè)將來(lái)會(huì)什么樣子。當(dāng)然如果只是一次項(xiàng)目的話,為了方便到是可以這樣子做。反正項(xiàng)目做完就是拜拜了。不用維護(hù)。SharpDevelop有一點(diǎn)大,想要吃通他的話,需要一定的時(shí)間和精力。不過(guò)他真的是一款學(xué)習(xí)PC端開發(fā)的最佳開源項(xiàng)目之一。

SharpDevelop的下載地址:https://github.com/2594636985/SharpDevelop。

Xceed.Wpf.Toolkit

Xceed.Wpf.Toolkit是一個(gè)

網(wǎng)友評(píng)論