回答
Gtk#:
GTK#是一個.NET爲GTK +工具包結合。該工具包是用C語言編寫的,以提高速度和兼容性,而GTK#綁定則提供了易於使用的面向對象的API,以供管理使用。它正在由Mono項目積極開發,並且有各種現實應用程序可供使用(Banshee,F-Spot,Beagle,MonoDevelop)。
一般而言,GTK#應用程序使用MonoDevelop編寫,它提供了一個用於創建GTK#GUI的可視化設計器。
平臺:UNIX,Windows和OSX
優點:通過它的GTK +傳承無障礙
- 良好的支持。
- 佈局引擎理想用於處理 國際化環境和 適應字體大小而不會破壞 應用程序。
- 應用程序與Gnome 桌面集成。
- API是Gtk +開發人員熟悉的。
- 大型Gtk +社區。
- Win32端口可用,在Windows XP上有 原生外觀。
- 該API在此 點處相當穩定,並且添加了語法糖以加強其以改善它。
- Unicode支持是例外。
缺點:
- GTK +應用程序運行像MacOS X上
- 文件不全國外 應用。
Windows.Forms的是由微軟開發的結合對Win32工具包。作爲數百萬Windows開發人員(尤其是內部企業應用程序)使用的流行工具包,Mono項目決定生成一個兼容的實現(Winforms),以允許這些開發人員輕鬆地將他們的應用程序移植到Linux和其他Mono平臺上。
儘管.Net實現是對Win32工具箱的綁定,但Mono實現是用C#編寫的,以允許它在多個平臺上工作。大部分Windows.Forms API都可以在Mono上運行,但是有些應用程序(特別是第三方控件)偶爾會直接繞過API和P/Invoke到Win32 API。這些電話可能必須改變才能在Mono上工作。
一般而言,Winforms應用程序是使用Microsoft的Visual Studio或SharpDevelop編寫的,它們都提供了用於創建Winforms GUI的可視化設計器。
平臺:Windows,UNIX,OSX
優點:
- 大量文檔存在它 (書籍,教程,在線文檔)。
- 大型活躍開發者社區。
- 通往現有端口的最簡單路由 Windows.Forms應用程序。
缺點:
- 國際可以是具有固定佈局棘手 。
- 在非Windows平臺上看起來很陌生。
- 調用Win32 API的代碼不是 便攜式。
簡而言之:是
兩者都是GUI的Tookits,但WinForms的(正如其名字),主要開發用於窗戶。 GTK是爲GIMP開發的,也是一個多GUI工具包的方法。
如果您的應用程序只在Windows上運行,在大多數情況下,您應該使用WinForms。
如果您的應用程序將運行在不同的操作系統下(比如linux,bsd,windows,macos等),您更喜歡GTK。
如需更好的解釋請看here。
它們是不同的圖形工具包,用於創建具有不同來源的窗口化應用程序。
GTK#是GTK庫的綁定,主要用於linux/unix。它也適用於Windows,但它不是它所設計的本地環境。
Winforms是另一個工具包,這個來自微軟。
它們是完全不同的API來獲得相同的結果,但每個API都更適合於平臺。
如果你正在尋找在.net中的多平臺窗口,Qt可能是一個現在已經獲得LGPL的選項。
它們都是GUI工具包,每個都有自己的優勢和劣勢。根據我的經驗:
- Winforms不需要在Windows上安裝,Gtk#確實需要在Windows上安裝。
- Winforms在Visual Studio中有一個設計器,Gtk#擁有獨立的設計器和集成在MonoDevelop中設計。
- Winforms綁定到Windows,Gtk#是跨平臺的。
- Winforms很慢並且閃爍。 Gtk更快。
- 大多數Winforms控件都是標準窗口控件的包裝,並提供非常有限的功能。 Gtk小部件功能更豐富。
- Gtk允許創建具有複雜佈局的表單和小部件。 Winforms僅提供佈局的簡單變體,而FlowLayout & TableLayout & AutoSize太弱,無法調整大小和自動適應不同字體大小和不同分辨率的複雜表單。
- 開羅更快並且具有更多的功能比GDI +(開羅支持從多個類型的文件,例如,SVG,PDF格式輸出和輸入)
- Gtk#的是開源,WinForms的是不
- 的Winforms和GTK#有第三方控件/小部件(但是,由於基本控件的工作非常好,因此Gtk#對它們的需求較少)。
總之,我不會推薦使用Winforms(除非有強有力的理由不比.NET FW有更多的依賴性),但使用Gtk#或WPF。
- 1. Gtk +和Qt有什麼區別?
- 2. GTK +和GTK#有什麼區別,哪一個是「更多平臺」?
- 3. windows csv和mac csv有什麼區別?
- 4. 在Gtk中,TreePath和TreeIter有什麼區別?
- 5. C中的GTK和Win32 Native API有什麼區別?
- 6. GTK主題和窗飾主題有什麼區別?
- 7. 有什麼區別`和$(Bash中有什麼區別?
- 8. 有什麼區別? :和||
- 9. &&和||有什麼區別?
- 10. 「/」和「/ *」有什麼區別?
- 11. 有什麼區別:。!和:r!?
- 12. ==和===有什麼區別?
- 13. Appender和〜有什麼區別?
- 14. $ @和$ *有什麼區別?
- 15. is和=有什麼區別?
- 16. #.00和#。##有什麼區別?
- 17. `==`和`is`有什麼區別?
- 18. '=='和'==='有什麼區別?
- 19. /和/#/有什麼區別?
- 20. | 0和~~有什麼區別?
- 21. `&`和`ref`有什麼區別?
- 22. ==和===有什麼區別?
- 23. ==和===有什麼區別?
- 24. `{}`和`[]`有什麼區別?
- 25. JavaScript和=== ===有什麼區別?
- 26. difftime和' - '有什麼區別?
- 27. =和==有什麼區別?
- 28. .Net 2.0/3.5/4.0中的Windows Forms實現之間有什麼區別?
- 29. 有什麼區別複製命令 - windows
- 30. Windows程序調用有什麼區別?
奇怪你怎麼會突然在你的答案:) – 2009-10-16 10:48:37