一、定義
1、Winform的定義:
WinForm是·Net開發平台中對Windows Form的一種稱謂。
2、WPF的定義:
WPF(Windows Presentation Foundation)是微軟推出的基於Windows 的用戶界面框架,屬於.NET Framework 3.0的一部分。它提供了統一的編程模型、語言和框架,真正做到了分離界面設計人員與開發人員的工作;同時它提供了全新的多媒體交互用戶圖形界面
二、特點
1、Winform的特點:
- 功能強大:Windows窗體可用於設計窗體和可視控件,以創建豐富的基於Windows的應用程序
- 使用安全:Windows窗體充分利用公共語言運行庫的安全特性。
- 操作方便:提供易於連接OLEDB和ODBC數據源的數據控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等
- 控件靈活:Windows窗體提供了一套豐富的控件,並且開發人員可以定義自己有特色的新的控件。
- 數據管理:方便的數據顯示和操作:應用程序開發中最常見的情形之一是在窗體上顯示數據。Windows窗體對數據庫處理提供全面支持。可以訪問數據庫中的數據,並在窗體上顯示和操作數據。
- 向導明確:向用戶提供創建窗體、數據處理、打包和部署等的分布指導。
2、WPF的特點:
- 功能和界面分離:程序人員與美工人員明確分工,美工人員可以使用Expression Studio中套裝工具可視化的設計界面。然后交給程序開發組中的XAML就可以。讓程序人員直接套用到開發環境,不需要想頁面怎么切了。
- 矢量圖的超強支持:兼容支持2D繪圖,比如矩形、自定義路徑,位圖等。文字顯示的增強,XPS和消鋸齒。三維強大的支持。包括3D控件及事件,與2D及視頻合並打造更立 體效果。漸變、使用高精確的(ARGB)顏色,支持浮點類型的像素坐標。
- 靈活、易擴展的動畫機制:.Net Framework 3.0類庫提供了強大的基類,只需繼承就可以實現自定義程序使用繪制。接口設計非常直觀,完全面向對象的對象模型。
- 可以使用任何一種.Net編程語言:XAML主要針對界面的可視化控件描述,成生進會分析成.cs或.vb文件,並最后將編譯為CLR中間運行語言。
三、該如何選擇
要考慮的問題:
- 考慮目標客戶機器配置以及系統
- 根據程序界面要求
- 項目屬於什么類型,外觀還是技術型
- 目標群體是什么樣的人
- 開發者是什么樣的人
- 開發人員對Winform和WPF熟悉程度怎樣
-------------------------------------------------------------------------------------------
從程序上講,都以事件的形式調用處理:
- winform開發上比WPF稍容易點,但整體上說其實沒多大區別。
- WPF基於directX,所以對於3D的處理更好,畫面也更加酷炫。
- winform的畫面設計采用與開發語言相同的語言實現,並保存在相同的代碼類型文件中,移植性不好。WPF的畫面采用XML形式書寫,保存在xml中,移植性更好,也更直觀易懂。
- 另有一點細微差別,就是winform的控件可以疊放,如兩個button的坐標可以完全一樣,只能看到上面的一個。而WPF的控件不能疊放,所以如果有兩個button位置相同,你必須要隱藏一個,否則兩個都會被看到。
- WPF用的MVVM模式
- winform用的事件驅動WPF有三種應用模式:應用、瀏覽應用、文檔應用。
- 應用就是一般的窗口應用,瀏覽應用就是象網頁一樣的一頁一頁的應用,文檔應用是用來顯示內容的瀏覽應用功能子集,而不是MVC模型。
- 一般應用其實也就是每個頁面擁有一個獨立的窗口。
總結一下:
WinForm:界面+程序一個人能搞完
WPF:還得給你們這幫碼農配一個美工,當然如果你本身擅長美工的話,一個人也是沒有問題的。
winform窗體設計,企業管理系統界面設計參考:https://blog.csdn.net/qq_36482772/article/details/78008531
WPF窗體設計,仿TIM QQ界面設計,參考:https://www.jianshu.com/p/d105e40a90d4
在Winform窗體中使用WPF控件,具體實現請轉至 https://www.cnblogs.com/DebugLZQ/archive/2012/05/19/2508846.html
WPF教程:https://www.cnblogs.com/chillsrc/p/4464023.html
注:以上文章有些描述是網上摘錄的,如有講述不對的,歡迎指出,感謝 !!!