c# - 对于 C# 中的多平台 GUI 应用程序,我有哪些选择?

标签 c# user-interface cross-platform

请记住,虽然我知道如何编码,但我不是专业开发人员。继续:

我希望为在 Linux 和 Windows 上运行的嵌入式系统创建一个简单的 GUI 程序。问题是,负责开发该小程序的人坚持用 C# 编写它。我可以通过 mono 运行 .net 框架代码,而 .net core 的设计是多平台的,但他要使用 UWP,这显然不能在 Linux 上运行。我研究过 Avalonia,但它与他使用的 .net 版本不兼容。他告诉我,由于某些复杂的原因,QT 显然无法工作,因为我们只是运行一个本地应用程序,没有任何网络连接,甚至没有来自服务器。非常清楚的是,我需要 C# 中的跨平台 GUI。我也不是在问最好的选择是什么,只是问存在哪些可能的选择。我和开发人员将从那里开始。

提前致谢,RUWO

最佳答案

您有一些选项,根据您的需要可能会很有效,我会选择 AvaloinaUI,但以下是您的选项:

  • Avalonia 是一个受 WPF 启发的跨平台、基于 XAML 的 UI 框架,提供灵活的样式系统并支持广泛的操作系统:Windows(.NET Framework、.NET Core)、Linux(也包括 ARM)、MacOS。 Android 和 iOS 已列入路线图。

还有一个 Avalonia 的功能包装 https://github.com/AvaloniaCommunity/Avalonia.FuncUI这使得从 F# 使用它成为一种魅力。

  • Gtk# 是一个用于 mono 和 .Net 的图形用户界面工具包。该项目绑定(bind)了 gtk+ 工具包和各种 GNOME 库,支持使用 Mono 和 .Net 开发框架进行完全原生的图形 Gnome 应用程序开发。

  • Eto 该框架可用于构建使用其 native 工具包跨多个平台运行的应用程序,并具有易于使用的 API。这将使您的应用程序在所有平台上看起来和工作都像 native 应用程序一样,使用单个 UI 代码库。

  • CoreUI/LibUI 绑定(bind)到可移植 C 库。简单且可移植(但并非不灵活)的 C 语言 GUI 库,使用其支持的每个平台的 native GUI 技术。

  • QtSharp Qt 的 Mono/.NET 绑定(bind) 该项目旨在创建封装 Qt ( https://qt-project.org/ ) 的 Mono/.NET 库,从而能够通过 C# 使用它。

Avalonia 目前正在向 1.0 版本迈进,但它已经稳定了。我使用 Avalonia 已经大约一年了,到目前为止我的体验非常好。周围的社区发展迅速,核心开发者在官方 gitter 聊天中非常活跃。

关于c# - 对于 C# 中的多平台 GUI 应用程序,我有哪些选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51086882/

相关文章:

javascript - 用于捕获 html 5/css 3 页面状态的工具,以便视觉设计人员可以进行更改

javascript - 如果屏幕低于 480 像素,则阻止 Javascript 继续执行某个功能

c# - ObjectIDGenerator 实现

c# - 无法连接到另一个域中的 TFS 2010

java - Nimbus 上的 JTextArea 在不同机器上不一致

c++ - Qt 中的可伸缩图形用户界面

c++ - 如何确定我正在编译的 MacOS 版本?

c# - Unity3D C# - 文本用户界面

c# - 从类型 T 访问属性

c# - Null-Coalescing 运算符结果的隐式转换