WPF和Winform界面開(kāi)發(fā)對(duì)比(wpf和winform哪個(gè)做界面好)
銳英源精品原創(chuàng),禁止全文或局部轉(zhuǎn)載,禁止任何形式的非法使用,侵權(quán)必究。點(diǎn)名“簡(jiǎn)易百科”和閑暇巴盜用銳英源原創(chuàng)內(nèi)容。
最近用WPF寫(xiě)界面,越來(lái)越流暢,這里談一些感受,重點(diǎn)是WPF和Winform界面開(kāi)發(fā)對(duì)比,對(duì)于熟悉Winform開(kāi)發(fā)的朋友來(lái)說(shuō),能夠幫助快速掌握WPF。
WPF有MVVM機(jī)制,里面的VM專門(mén)處理數(shù)據(jù),和界面是獨(dú)立的,這個(gè)獨(dú)立帶來(lái)來(lái)分工明確和安全性。Winform開(kāi)發(fā)時(shí),窗口和數(shù)據(jù)是綁定的,代碼是混淆在一個(gè)代碼文件里,如果不小心改亂了,界面效果也會(huì)受影響,這是因?yàn)閃inForm的一些特殊界面效果是需要寫(xiě)代碼調(diào)用API來(lái)實(shí)現(xiàn),比如雙緩沖、自繪制和子類化等等,這些特殊效果讓MFC和C#的Winform開(kāi)發(fā)非常雜亂困難,特別是MFC,很多朋友不想用C 也主要是界面和數(shù)據(jù)的困難。當(dāng)然WPF要實(shí)現(xiàn)一些特殊功能也需要寫(xiě)代碼,比如行為和類型轉(zhuǎn)換,但是這一般不用寫(xiě)到一個(gè)文件里,比較獨(dú)立。
WPF的xaml的文本編輯功能強(qiáng)大好用,MFC里如果rc文件加載不了,手工改rc文件,對(duì)于復(fù)雜的窗體界面是不可能的,編輯器就沒(méi)有支持,根本不可能看到父子關(guān)系,而WPF的xaml里有線指示父子關(guān)系,拷貝文本內(nèi)容到其它地方,設(shè)計(jì)效果界面對(duì)直接刷新。C#的designer.cs里也是文本和設(shè)計(jì)效果界面分開(kāi)的,不能互相對(duì)比實(shí)時(shí)查看。
WPF分立,MFC和C#Winform是耦合,不過(guò)有些朋友習(xí)慣了耦合,可能開(kāi)始還不適應(yīng)WPF。
WPF比較新,所以新功能多,比如看WPF的界面元素的屬性窗口:
這些屬性的數(shù)量肯定比Winform開(kāi)發(fā)的數(shù)量多,并且屬性里可以帶表達(dá)式,有了表達(dá)式,就能讓界面的處理由界面負(fù)責(zé),不和其它方面牽涉。
對(duì)于編輯框TextBox來(lái)說(shuō),文本配置屬性更豐富,還能處理段落間距這類,如果是Winform開(kāi)發(fā),可能就要寫(xiě)代碼指定行高等等,帶來(lái)不必要的麻煩。