對比WPF和WinFrom前,先來了解下GUI現階段在用的其他一些開發技術:
MFC:微軟基礎類庫,以C++的形式封裝了Windows API,加上一些實用工具類。
QT:奇趣科技開發的跨平台C++圖形用戶界面應用程序開發框架,不僅僅簡單的封裝了系統API,也有自己創造出的完整API框架。一般配合C++和Python完成程序開發,例如:電子書神器Calibre,圖片瀏覽XnViewMP,Android模擬器Genymotion等等。
Xamarin:這個偏移動桌面,底層C#編寫,支持OS、Android、Windows Phone(已掛)和Mac App應用平台。已在微軟BB的領導下開源,是移動端開發的一種選擇(國外較多)。
Electron:使用 JavaScript, HTML 和 CSS 構建跨平台的桌面應用,基於 Chromium 和 Node.js,兼容 Mac、Windows 和 Linux。開源地址:https://github.com/electron/electron
接下來回到主題,來看看WPF和WinForm兩大主角:桌面新王(WPF),老去霸主(WinFrom)
新王和舊主最大的區別在於,前者底層使用的是DirectX,后者底層是GDI/GDI+。GDI+(Graphics Device Interface)圖形設備接口,它的主要任務是負責繪圖程序之間的信息交換、處理,所有windows程序的圖形輸出。DirectX(Direct Extension)多媒體編程接口,加強3D圖形和聲音效果,有很多API組成。
WPF相對於WinFrom來說,向前跨出了巨大的一步,它提供了超豐富的.NET UI 框架,集成了矢量圖形,豐富的流動文字支持(flow text support),3D視覺效果和強大無比的控件模型框架,支持GPU硬件加速,並會根據顯卡類型, 自動匹配圖形加速類型。
so.... 從理論上講,擁有高配置的顯卡,對WPF的支持會有意想不到的好。
but.... 炫酷牛X的WPF需要牛X的硬件來支持。下面羅列WPF優缺點:
WPF優點:
1、漂亮、漂亮、漂亮
2、想怎么漂亮怎么漂亮
3、各種圖形和動畫
4、UI和數據邏輯分離
5、數據綁定
6、Blend,PS等工具友好搭配
WPF缺點:
1、較占資源(美的代價)
2、界面隨意定義,統一性需嚴格把控
3、無法在Windows 2000或更低版本上運行