WPF和WinForm技術有什麼區別?

WPF和WinForm技術有什麼區別?哪個更加有前景?

2019-03-19

蒼狼王~

碼齡3年


1、

結果來說,屬於兩套界面渲染方式。一個是對傳統windows界面元素的封裝,通過gdi繪製。另一個是全新的dx渲染繪製的界面,也脫離了對傳統windows控件的依賴,沒有歷史包袱,理論上可以展現更炫酷的界面。對初級開發人員來說,沒太大區別,類似的基本設計器是他們設計界面的主要手段,一樣給事件編寫代碼。對初級以上開發人員來說,wpf需要學習xaml,有全新的ui描述語言,特別是可以通過模板的嵌套實現複雜的元素,通過style實現類似css的功能,通過比winform完善的多的數據綁定機制實現業務邏輯可以專心對數據而不是界面進行開發。前途來說,兩者必定還會長期共存。深入理解winform對理解windows一些內部機制有好處。好好學習wpf可以更方便過度到其他xaml相關技術,這是微軟目前廣泛使用的技術,比如接下來的windows通用應用。

鏈接:https://www.zhihu.com/question/36859063/answer/69371365

2、

Winform本質上就是在MFC上增加一層.Net API, 從06年開始就只有幾個人在維護,基本上不增加任何新feature, 只是做bug fix. 所以,如果你要開發windows上的程序,最好不要使用Winform, 懂了這個技能也沒啥用。Win8開始,微軟用了一套新的Framework,但是跟WPF很相像,都是XAML,後面的設計思想也是基本一樣的(畢竟是同一組人設計的)所以,如果你要學Windows上界面開發,WPF算是一個選擇吧另外,從實現上講,WinForm用的是Windows以前那一套每個控件都是一個窗口的設計,而WPF本身只有一個窗口,所有控件都在這個窗口裡的Visual Tree上,另外,它還可以有效利用你的GPU.

鏈接:https://www.zhihu.com/question/36859063/answer/77876774

3、

對於初學者來說,最直觀的印象是:winform的控件更多,但是wpf的界面可以更炫酷,更重要的是wpf對於屏幕的自適應比winform優秀得多。太多開發桌面程序的人由winform轉到wpf最重要的原因是winform的控件自適應做得很差,而不同客戶公司裡有不同比例的顯示器。winform還有一些其他方面讓你不爽,比如label標籤背景不能設置為透明,以及窗口編輯視圖不能縮放,讓你感覺到很掣肘。而wpf的則給了你全面的自由,特別是學到以後的修改模板以及特效。至於數據綁定,mvvc 設計模式初學者通常感受不到它的好處的。至於說到的性能差異,通常可以忽略不計。而且wpf完全兼容winform的語法,所以越快轉越好!

鏈接:https://www.zhihu.com/question/36859063/answer/69381456

4、

你想上班 那麼針對公司需求學如果只是自己寫著玩 那麼區分一下1.你的程序運行在 自己機器a.一個工具而已 要的是cooooooool 那麼WPFb.一個工具而已 要的是useful easy 那麼winform2.運行在客戶機器a.客戶要求coooooool 那麼wpfb.客戶要求 userful 那麼winform不要談到性能 就可以忽略。 XP機器 依舊很多。記住WPF 需要大量內存 以及CPU的代價來實現普通功能。記住WPF 是新的東西 需要重新上手學習記住 winform是 老的東西 win32 的那一套老生常談都可用在這裡如果談前景 理論上說起來是WPF 更有前景 但是目前實際來看 WPF發展並不如預期 相反winform也並不如預期的沒落。加上 巨硬 經常會自己打臉。

鏈接:https://www.zhihu.com/question/36859063/answer/128784499

5、做項目WinForm更好。雖然WPF更先進,但是好比XP比Win8更普及一樣。WinForm具有更好的客戶端性能。功能上也差不多,都能做出來。還有UWP,當然這個更冷門。

比較有前景的是 .net Core。

6、

1、改界面winform:寫的程序如果需要改界面牽扯很大。代碼的編輯可能會導致更多的錯漏出現而不自知。大工程改界面更甚。wpf:如果採用mvvm(model、view、viewmodel)來寫,任你界面改翻天,後臺代碼不受任何印象。2、複雜的控件winform:寫各種各樣的後臺代碼wpf:用依賴屬性、附加屬性、觸發器即可定製複雜的控件。比如顯示股票k線價格的控件3、動畫winform:寫後臺代碼wpf:用animation的各種屬性即可4、句柄winform:一個控件一個句柄(記得是這樣,如果我記錯了請指正)wpf:整個窗口同一個句柄5、控件自適應winform:麻煩wpf:利用wpf的panel,就能讓控件自動自適應。

鏈接:https://www.zhihu.com/question/36859063/answer/380193324

7、

鏈接:https://www.zhihu.com/question/36859063/answer/524667474

winForm 使用同一套編程語言代碼完成界面的設計,以及後臺的交互邏輯。你在winForm代碼中可以瞭解和干預圖形界面的渲染時機和細節。winForm使用傳統的GDI渲染圖形界面,較為中規中矩,但難以實現得更絢麗。winForm很成熟,有十幾年的技術積澱,但微軟已經停止對其增加新的特性,僅在某些安全漏洞上做一些補丁。WPF的設計理念是圖形和邏輯完全分離,因此圖形界面的設計是通過專門的XAML代碼設計的,後臺邏輯則可以使用C#或VB編寫。你無法在WPF/XAML代碼中瞭解和干預圖形界面的渲染時機和細節。WPF使用DX渲染圖形界面,更接近圖形驅動程序,效果可以非常絢麗,性能也比較好。WPF出現的比較晚,但也有好幾年的技術沉澱了。由於現階段微軟更推崇升級版的UWP,WPF本身也像winForm一樣好久沒有新的特性了。winForm適合沒有專門的圖形設計師,且不需要在圖形界面有太多要求的團隊,入手簡單。WPF適合有專門的圖形設計師,圖形界面有較高要求的團隊,相對複雜。就技術本身來說,WPF的技術更符合時代潮流,更有前景。但個人來說,瞭解winForm有助於理解圖形界面生成處理的細節,winForm在某種程度上類似於MFC,但又不至於太底層而難懂。

8、

你如果是職業碼農,請問你學wpf做什麼呢?開發桌面exe嗎?就算搞專業桌面應用的企業也都是跨平臺方案,有幾個用wpf呢?你如果是業餘碼農,為什麼不用winform呢?winform簡單而且開發速度快,嫌醜的話再用donetbar之類的插件美化一下即可,最重要的是部署,xp win7基本都有net2.0的環境,直接就能跑。你能體會到寫完wpf,最後部署到xp卻發現客戶端上安裝net4.0裝不上的感覺嗎?補充下:現在xp電腦基本上不用考慮,但是依然不推薦wpf。速成推薦winform,深入學習推薦qt或者electron 。qt 既有常規拖控件的widgets,又有類似於前端界面的qml和webengine,程序還能跑在安卓/ios上,強烈推薦。

鏈接:https://www.zhihu.com/question/36859063/answer/80781661

9、

我正面回答一下題主的問題吧:其實兩個前景都不大好。WPF比Winform略好一點的方面是,現在微軟的新界面開發方式,都是用XAML,所以Siverlight,WPF,Windows Phone/Metro,學了一樣,就一通百通了,但是實質上,都看不到有什麼太光明的前景,至少在國內是這樣的。

鏈接:https://www.zhihu.com/question/36859063/answer/69389566

10、

學會XAML,5分鐘看懂DIV+CSS。

11、

當然是各有各的好嘍。

WinFrom比較老是不追求界面,要求一般性能的首選。Wpf是新一代的Ui開發框架,適合界面要求高的,性能也沒有那麼不堪,適合快速開發。所以假如想做好的話這兩者甚至是MFC都要熟悉的。這三者即可相互替代,也可相互融合。手機碼字

12、

鏈接:https://www.zhihu.com/question/36859063/answer/332638303

wpf的底層是DirectX,意味著你的顯示效果不僅可以更炫更酷,同時顯卡(集顯獨顯均可)提供的加速也不會拖累你的運行速度。winform的底層是GDI/GDI+,除非你明確使用DX的接口,不然永遠都是CPU在畫圖,效果沒那麼炫,而且無法顯卡加速。wpf的界面設計和邏輯設計可以分離,界面設計師可以利用blend自主設計好看的界面,而不是最終讓程序員來實現那個複雜的動畫或者設計。winform設計師最多拖一拖,而這往往不夠用。wpf對於數據邏輯、業務邏輯、顯示邏輯進行了解耦和,可以讓不同部門協同工作更舒服一些,winform多少有一些攪在一起


分享到:


相關文章: