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

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

怎樣使用C#WPF程序與西門子S7-1200/S7-1500PLC進(jìn)行通信呢
WPF的Xceed Pro主題
新版WPF Gallery預(yù)覽版亮相微軟應(yīng)用商店,采用Fluent Design設(shè)計
SciChart 3D for WPF圖表庫

評論