gpt4 book ai didi

winforms - 如何从 Windows 为 linux 移植 C# 应用程序?

转载 作者:行者123 更新时间:2023-12-04 11:51:01 26 4
gpt4 key购买 nike

Windows.Forms 库包含许多有效阻止应用程序工作的错误。 WinForms Designer 无法将 WebBrowser 控件放在表单上。 NotifyIcon 类在 LXDE 下不起作用(参见 KeePass 的 bugtracker)。 Clipboard 类与Calculate Linux 的默认管理器不兼容。拖放在 DockPanelSuite 中存在问题。 WinForms Designer 因不透明问题而未完成。 WPF 从未实现过,也没有计划这样做。

而mono团队说“我们不想开发WinForms,因为这是老技术”。

应该如何将一个桌面 C# 应用程序从 Windows 移植到 Linux?用 Gtk# 重写它似乎太难了......

什么更容易——修复单声道 WinForms,实现 WPF,或者将世界上所有的应用程序重写为 Gtk#?

最佳答案

正如您已经发现 Mono WinForms 实现仅适用于非常简单的应用程序。看看"Cross-Platform Desktop UIs" Xamarin 员工 Mike James 的博客文章总结了可用的解决方案:

  • 传统方法
    WPFWinForms Windows 上的前端,GTK# Linux 上的前端和 Xamarin.Mac在 Mac OS X 上。IMO 这是最好的方法,如果您在应用程序中正确分离了业务层和表示层,它可能比看起来更容易。
  • XWT
    XWT 工具包使用相同的 API 并在所有平台上提供原生外观,但只实现了有限的组件子集。它对您的项目的可用性取决于您真正需要的组件。
  • HTML 前端
    使用简单的 WebView 组件或 Awesomium HTML UI Engine 创建 HTML 前端.在某些情况下,这可能是一个可行的选择,但我不确定是否可以使用这种方法实现系统托盘图标。
  • QTSHARP
    旨在为多平台 QT 工具包实现 .NET 绑定(bind)的开源项目。我从未尝试过,但根据项目网站,它似乎处于早期阶段,目前仅在 Windows 上进行测试。

  • 顺便说一句,我目前正在将 WinForms 用于 Pkcs11Admin应用程序,但我计划在任何受支持的平台上遇到阻止程序错误时立即使用传统方法。

    关于winforms - 如何从 Windows 为 linux 移植 C# 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28389766/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com