前言
經(jīng)常遇到還沒開始學(xué)習(xí)C#的學(xué)員問我:
Winform和WPF,我應(yīng)該先學(xué)什么?
在很多人眼里,WPF是一門高級(jí)技術(shù),而Winform是比較Low的。
今天跟大家聊聊,關(guān)于WPF和Winform。
簡(jiǎn)單聊聊
首先我認(rèn)為Winform不算是過時(shí)的技術(shù),WPF也不算是什么新技術(shù),兩者并不是你死我活的競(jìng)爭(zhēng)狀態(tài),還是不同階段的不同選擇。
就像是汽車一樣,Winform偏向于家用代步車,WPF偏向于高級(jí)的轎車,不同的價(jià)格,不同的性能,不同的定位。
對(duì)于剛畢業(yè)幾年的年輕人來說,家用代步車無疑是更適合的,但是你只要努力,你肯定會(huì)到達(dá)購買高級(jí)轎車的階段。
所以我的建議是對(duì)于初學(xué)者來說,還是要先學(xué)習(xí)Winform,因?yàn)閷W(xué)習(xí)Winform的成本會(huì)更低,學(xué)習(xí)WPF,你要學(xué)習(xí)的內(nèi)容會(huì)更多,至少要多學(xué)習(xí)一門XAML語言。
然而,不管是代步車還是高級(jí)轎車,都需要有駕照,你才能上手,對(duì)于Winform和WPF來說,這個(gè)駕照就是C#編程語言。
兩者區(qū)別
如果要說Winform和WPF最大的區(qū)別在哪里?
我覺得一方面是布局方式,一方面是驅(qū)動(dòng)方式。
首先談下布局方式,一般來說,界面布局的方式有兩種,一種是拖控件,另一種是通過布局控件來實(shí)現(xiàn),而Winform主要是以拖控件的方式為主,配合布局控件做整體布局,而WPF則恰恰相反,雖然也可以拖控件,但是很少這么做,主要是通過編寫XAML代碼來實(shí)現(xiàn)。
再來說下驅(qū)動(dòng)方式,Winform是基于事件驅(qū)動(dòng),WPF是基于數(shù)據(jù)驅(qū)動(dòng),以操作一個(gè)按鈕,執(zhí)行一個(gè)查詢操作為例,Winform是在按鈕的點(diǎn)擊事件里,寫好查詢代碼,然后將結(jié)果展示在數(shù)據(jù)控件里,而WPF則是通過按鈕綁定一個(gè)動(dòng)作方法,數(shù)據(jù)控件綁定好數(shù)據(jù)源,在方法里查詢即可,這樣做的目的就是盡量減少前后端的耦合。
寫在最后
無論是Winform還是WPF,都是一種開發(fā)桌面程序的技術(shù),都需要采用C#語言來編程。
不管是什么語言,什么技術(shù),對(duì)我們來說,只是一個(gè)工具而已,適合自己的才是最好的,能解決問題的就是好的,就像那句諺語,白貓黑貓,能抓老鼠的就是好貓。
不管是Winform還是WPF,最終都是為了項(xiàng)目開發(fā),所以最好的方式是兩者都要學(xué)會(huì),然后結(jié)合項(xiàng)目的實(shí)際需要、開發(fā)周期、開發(fā)成本來綜合選擇。
-
技術(shù)
+關(guān)注
關(guān)注
0文章
432瀏覽量
58752 -
wpf
+關(guān)注
關(guān)注
1文章
19瀏覽量
8966
發(fā)布評(píng)論請(qǐng)先 登錄
WPF界面編程與LabVIEW
c#/winform c#/wpf c++/QT上位機(jī)
解如何實(shí)現(xiàn)WPF與Lua的交互
基于WPF的醫(yī)療輔助軟件設(shè)計(jì)與開發(fā)
WPF 應(yīng)用程序的開始兩個(gè)線程介紹
基于WPF電機(jī)控制系統(tǒng)監(jiān)控軟件

使用WPF開發(fā)的簡(jiǎn)易計(jì)算器軟件免費(fèi)下載

怎樣使用C#WPF程序與西門子S7-1200/S7-1500PLC進(jìn)行通信呢
WPF的Xceed Pro主題
基于WPF的上位機(jī)開發(fā)模板

新版WPF Gallery預(yù)覽版亮相微軟應(yīng)用商店,采用Fluent Design設(shè)計(jì)
SciChart 3D for WPF圖表庫

評(píng)論