代码之家  ›  专栏  ›  技术社区  ›  Jay R.

C#/.NET是否有跨平台的GUI框架?

  •  5
  • Jay R.  · 技术社区  · 15 年前

    让我们说,只是为了好玩,我决定不再用Java编写桌面应用程序,而是想改用C。我希望能够构建一个可以在主流Linux发行版和mswindows最新版本上运行的应用程序。它将有一个GUI组件。

    在Java中,我可以构建一个使用Swing的应用程序。一旦我有了它,我就可以把这个jar文件从Windows复制到Linux,或者反过来,这取决于我在哪里开发的。它通常会与 java -jar myapp.jar .

    在C中有可能这样做吗?在C中是否有与Swing或AWT等效的功能?

    9 回复  |  直到 6 年前
        1
  •  23
  •   Curtis    12 年前

    Eto.Forms WPF公司 , 桌面应用程序 , GTK公司 ,和 单体/可可 -因此,您可以在所有平台上获得本机UI,而不必为每个平台重新实现。您不必遭受最小公分母的困扰,因为您可以为每个平台实现具体细节(如果需要,但不是必需的)。

    它的一个优点是它是纯.NET,并且只依赖于操作系统提供的依赖项,而不是使用GTK或WxWidgets,因为您必须为各种平台绑定本机二进制文件。

        2
  •  14
  •   Joel Coehoorn    15 年前

    可能 GTK#

        3
  •  6
  •   Greg Campbell    15 年前

    This page 提供了Mono支持的GUI工具包的列表,包括每个工具的优缺点。正如其他人所建议的,WinForms、GTK和wxNet都是可行的选择。

        4
  •  5
  •   Rob    15 年前

    我相信WinForms的很大一部分是用Mono实现的。你需要在Linux下安装Mono。不过,由于Mono不是微软的产品,也没有得到微软的正式支持,所以可能存在兼容性问题。

        5
  •  3
  •   John T    15 年前

    WxWidgets . 在许多其他语言中,它支持C#,并且是跨平台的。唯一的缺点是每个平台都要重新编译。或者你可以试试单声道,这是非常好的,但要注意,有几个障碍与兼容性问题。虽然还没有像Java和jar一样为C应用程序预定义的“runanywhere”文件,但是如果您想确保兼容性,最好的办法是为每个平台重新编译。

        6
  •  3
  •   Brian Deragon RFX    10 年前

    这是一个比较老的问题,但是作为更新,Mono和Xamarin的组合应该可以满足您的现代跨平台需求。

    http://www.mono-project.com/docs/gui/winforms/

    微软刚刚开放了.NET源代码,并承诺在下一个版本中将.NET内核引入Linux和MacOS。微软还与Mono和Xamarin建立了密切的合作关系,特别是帮助他们开发Android和Linux库。

    http://www.hanselman.com/blog/AnnouncingNET2015NETAsOpenSourceNETOnMacAndLinuxAndVisualStudioCommunity.aspx

        7
  •  3
  •   Community CDub    4 年前

    .NET MAUI ,它基于Xamarian构建并支持.NET核心。

    当我们考虑在一个统一的.NET中构建设备应用程序时,我们看到许多设备跨多个平台使用,从Android和iOS到Windows和macOS。为了满足这一需求,我们很高兴地宣布一个新的一流的UI框架来实现这一点:.NET多平台应用程序UI,亲切地称之为.NET MAUI。

    .NETMaui简化了.NET开发人员的选择,提供了一个支持所有现代工作负载的单一堆栈:Android、iOS、macOS和Windows。

    MAUI Github Repo 有社区发展的支持。

        8
  •  2
  •   Sam Schutte    15 年前

        9
  •  2
  •   Edward Ned Harvey    10 年前

    http://xamarin.com/forms 这是一个抽象层,允许您编写跨平台的代码,它在后台绑定到本地GUI工具包。

    我正在寻找更多这样的解决方案-我不仅关心移动平台,还关心桌面平台(windows、macosx、fedora/ubuntu/etc-linux)

        10
  •  1
  •   Christian Findlay    5 年前

    现在有很多。这取决于你在找什么。 Here 是关于这三种选择技术的详细描述。它们并不是唯一的技术,但它们现在最受欢迎。

    Xamarin Forms

    C,基于XAML,微软拥有的开源软件,支持Android、iOS、UWP等。本机渲染。

    Uno Platform

    Avalonia

    C,基于XAML,开源,支持Linux、MacOS、Windows等。每个平台上的像素完美渲染。

        11
  •  0
  •   devdimi    15 年前

    尽管2.0版本在Windows上得到了很好的支持,但是Mono也完全实现了它,这使得它可以在Mono支持的所有平台上使用。