前言
經(jīng)常遇到還沒(méi)開始學(xué)習(xí)C#的學(xué)員問(wèn)我:
Winform和WPF,我應(yīng)該先學(xué)什么?
在很多人眼里,WPF是一門高級(jí)技術(shù),而Winform是比較Low的。
今天跟大家聊聊,關(guān)于WPF和Winform。
簡(jiǎn)單聊聊
首先我認(rèn)為Winform不算是過(guò)時(shí)的技術(shù),WPF也不算是什么新技術(shù),兩者并不是你死我活的競(jìng)爭(zhēng)狀態(tài),還是不同階段的不同選擇。
就像是汽車一樣,Winform偏向于家用代步車,WPF偏向于高級(jí)的轎車,不同的價(jià)格,不同的性能,不同的定位。
對(duì)于剛畢業(yè)幾年的年輕人來(lái)說(shuō),家用代步車無(wú)疑是更適合的,但是你只要努力,你肯定會(huì)到達(dá)購(gòu)買高級(jí)轎車的階段。
所以我的建議是對(duì)于初學(xué)者來(lái)說(shuō),還是要先學(xué)習(xí)Winform,因?yàn)閷W(xué)習(xí)Winform的成本會(huì)更低,學(xué)習(xí)WPF,你要學(xué)習(xí)的內(nèi)容會(huì)更多,至少要多學(xué)習(xí)一門XAML語(yǔ)言。
然而,不管是代步車還是高級(jí)轎車,都需要有駕照,你才能上手,對(duì)于Winform和WPF來(lái)說(shuō),這個(gè)駕照就是C#編程語(yǔ)言。
兩者區(qū)別
如果要說(shuō)Winform和WPF最大的區(qū)別在哪里?
我覺(jué)得一方面是布局方式,一方面是驅(qū)動(dòng)方式。
首先談下布局方式,一般來(lái)說(shuō),界面布局的方式有兩種,一種是拖控件,另一種是通過(guò)布局控件來(lái)實(shí)現(xiàn),而Winform主要是以拖控件的方式為主,配合布局控件做整體布局,而WPF則恰恰相反,雖然也可以拖控件,但是很少這么做,主要是通過(guò)編寫XAML代碼來(lái)實(shí)現(xiàn)。
再來(lái)說(shuō)下驅(qū)動(dòng)方式,Winform是基于事件驅(qū)動(dòng),WPF是基于數(shù)據(jù)驅(qū)動(dòng),以操作一個(gè)按鈕,執(zhí)行一個(gè)查詢操作為例,Winform是在按鈕的點(diǎn)擊事件里,寫好查詢代碼,然后將結(jié)果展示在數(shù)據(jù)控件里,而WPF則是通過(guò)按鈕綁定一個(gè)動(dòng)作方法,數(shù)據(jù)控件綁定好數(shù)據(jù)源,在方法里查詢即可,這樣做的目的就是盡量減少前后端的耦合。
寫在最后
無(wú)論是Winform還是WPF,都是一種開發(fā)桌面程序的技術(shù),都需要采用C#語(yǔ)言來(lái)編程。
不管是什么語(yǔ)言,什么技術(shù),對(duì)我們來(lái)說(shuō),只是一個(gè)工具而已,適合自己的才是最好的,能解決問(wèn)題的就是好的,就像那句諺語(yǔ),白貓黑貓,能抓老鼠的就是好貓。
不管是Winform還是WPF,最終都是為了項(xiàng)目開發(fā),所以最好的方式是兩者都要學(xué)會(huì),然后結(jié)合項(xiàng)目的實(shí)際需要、開發(fā)周期、開發(fā)成本來(lái)綜合選擇。
-
技術(shù)
+關(guān)注
關(guān)注
0文章
431瀏覽量
58528 -
wpf
+關(guān)注
關(guān)注
1文章
19瀏覽量
8893
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
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)控軟件
![基于<b class='flag-5'>WPF</b>電機(jī)控制系統(tǒng)監(jiān)控軟件](https://file.elecfans.com/web2/M00/49/82/poYBAGKhwMCAQCUpAAAT0o3QSKE185.jpg)
使用WPF開發(fā)的簡(jiǎn)易計(jì)算器軟件免費(fèi)下載
![使用<b class='flag-5'>WPF</b>開發(fā)的簡(jiǎn)易計(jì)算器軟件免費(fèi)下載](https://file.elecfans.com/web1/M00/C6/D2/o4YBAF9kIqmAZh4RAAFJFstRISs217.png)
怎樣使用C#WPF程序與西門子S7-1200/S7-1500PLC進(jìn)行通信呢
WPF的Xceed Pro主題
基于WPF的上位機(jī)開發(fā)模板
![基于<b class='flag-5'>WPF</b>的上位機(jī)開發(fā)模板](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
新版WPF Gallery預(yù)覽版亮相微軟應(yīng)用商店,采用Fluent Design設(shè)計(jì)
SciChart 3D for WPF圖表庫(kù)
![SciChart 3D for <b class='flag-5'>WPF</b>圖表庫(kù)](https://file1.elecfans.com/web3/M00/06/FA/wKgZPGeR2MGACTO-AAB0dyVzDd0112.png)
評(píng)論