GTK# 和 windows 窗体有什么区别?他们完全不同吗?
谢谢
gtk#:
GTK# 是 Gtk+ 工具包的 .NET 绑定。该工具包是用 C 语言编写的,以提高速度和兼容性,而 GTK# 绑定提供了一个易于使用的面向对象的 API 以供托管使用。Mono 项目正在积极开发它,并且有各种使用它的实际应用程序(Banshee、F-Spot、Beagle、MonoDevelop)。
一般来说,GTK# 应用程序是使用MonoDevelop编写的,它提供了一个用于创建 GTK# GUI 的可视化设计器。
平台:Unix、Windows、OSX
优点:
缺点:
Windows.Forms 是 Microsoft 开发的对 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
优点:
缺点:
资料来源:选择正确的工具包
它们都是 GUI 工具包,各有优缺点。根据我的经验:
简而言之,我不建议使用 Winforms(除非有充分的理由不具有比 .NET FW 更多的依赖项),而是使用 Gtk# 或 WPF。
它们是用于创建窗口应用程序的不同图形工具包,具有不同的来源。
GTK# 是 GTK 库的绑定,主要用于 linux/unix。它也适用于 Windows,但它不是为其设计的本机环境。
Winforms 是另一个工具包,这个来自微软。
它们是完全不同的 API,用于实现相同的结果,但每个都更适合一个平台。
如果您正在.net 中寻找多平台窗口,Qt 可能是一个选择,因为它获得了 LGPL。
简而言之:是的
两者都是 GUI-Tookits,但 WinForms(顾名思义)主要是为 Windows 开发的。GTK 是为 Gimp 开发的,是一种用于多操作系统 gui 工具包的方法。
如果您的应用程序只在 Windows 上运行,在大多数情况下您应该使用 WinForms。
如果您的应用程序将在不同的操作系统(如 linux、bsd、windows、macos 等)下运行,您会更喜欢 GTK。
为了更好的解释看这里。