请记住,虽然我知道如何编码,但我不是专业开发人员。继续:
我希望为在 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/