3

我是编程新手,我对使用 Mono 在 C# 中开发应用程序很感兴趣。我想选择 GTK+ 以外的 GUI 框架:WinForms 或 XWT ( https://github.com/mono/xwt )。

有设计 WinForms GUI 的设计师吗?XWT 的呢?我使用 MonoDevelop 作为我的 IDE。

如果没有 WinForms 或 XWT 的设计者,您是否认为可以使用 Visual Studio 2012 使用 WinForms 在 .NET 中用 C# 编写应用程序,并在我想部署时使用 Mono 编译它?

4

2 回答 2

5

这大概是两个问题。

1.) 我的 Mono GUI RAD 选项是什么?

据我所知,如果你想要一个 Mono GUI RAD,你唯一的选择是 GTK#。

如果你想要一个适用于 Windows.Forms 的 GUI RAD,它被称为 Visual Studio(或者可能是 Win8 中的桌面版 VS Express),并且需要 Windows/在 MonoDevelop 之外工作。;) 从好的方面来说,它是一个非常好的GUI RAD。

2.) 什么 GUI 框架最适合编写一次并到处运行?

gtk#。不幸的是,Mono 的 Windows.Forms 不能很好地工作并且是一个死胡同。有关类似问题,请参见此处。

正如我在那里的答案中提到的那样,如果您想在 Mono 中编写一个针对多个操作系统的实用程序(或者您以 Linux 为中心),您可能确实需要 Gtk#。如果您想创建一个传统的客户端应用程序,请准备在每个目标平台上重写您的 GUI。

编辑:关于类似主题的较少裙带关系的问题

Edit2:我在这里忘记了一个 Mono WinForms 设计器,但它的描述很容易承认,“不幸的是,设计器还没有准备好正确使用”,而且他们提到的阻塞错误来自 2007 年,所以没有多大帮助。

祝你好运!

于 2013-05-11T15:11:06.430 回答
4

看看由 Xamarin 驱动的 mono 的当前方向,他们为每个平台推广原生 UI。意味着您将业务流程编写为每个目标平台的单独项目和 GUI。至于桌面,最好使用 XWT,因为您将使用类似的 API 来访问每个平台的原生 UI,而不会失去为每个平台添加更多高级 UI 的能力。

XWT API 基于 GTK# API(便于 Xamarin 人员迁移他们现有的应用程序),并提供了许多针对每个目标平台(Windows 的 WPF、Mac 的 Cocoa、Linux 的 GTK)实现的通用小部件/控件。此外,更容易添加高级/自定义小部件并托管在 XWT 中,因为它实际上就像托管在每个平台的本机工具包中一样

更新:

关于 Winform 已经得到解答,因为 XWT 似乎还没有设计器,但对于部署,只需创建项目 XWT GUI(共享所有 XWT GUI)、XWT.WPF(Windows 的 XWT 启动器)和 XWT.Cocoa(Mac 的 XWT MonoMac 应用程序)。但是每个启动器只能在每个平台上编译

于 2013-05-25T04:55:20.337 回答