wpf在linux上运行,可以在Linux上使用WPF吗?

可以在Linux上使用WPF吗?

我喜欢使用.NET进行编程,尤其是C#3.0,.NET 3.5和WPF。 但是我特别喜欢的是Mono .NET确实与平台无关。

现在,我听说了Mono的Olive项目。 我找不到某种Beta。

它已经工作了吗? 你们中有人有经验吗?

编辑:我知道月光。 但是我想要一个独立的WPF应用程序。 而且由于有了Moonlight,我希望Linux上的WPF成为现实。

Hades32 asked 2020-07-27T08:41:39Z

9个解决方案

23 votes

使用Moonlight会更好,因为它针对Silverlight API,后者是完整WPF的子集。

编辑:当然,Silverlight不是针对桌面的,但没有理由不能在应用程序中嵌入Silverlight引擎。 之前已经完成过,例如Mac NY Times阅读器

更多编辑:请参见Miguel在独立Silverlight应用程序上的帖子

Jimmy answered 2020-07-27T08:41:58Z

13 votes

更新:由于人们一直对此表示赞同,所以我想指出,这已经很久了。 Mono早在几年前就被MS收购,并且他们在开源方面的立场已经改变,因此请考虑将该帖子过时。 (与WPF框架本身一样过时了,呵呵)。

对于Microsoft API(例如Winforms和WPF),Mono的处境有些不舒服。 .Net技术的一个子集是ECMA标准,但是这些API的免费实现可能基于更不稳定的法律依据。 我认为这是Novell与Microsoft之间达成协议的一个重要因素,这对Novell客户有利。 但是使用Mono而不是Novell的客户的人不受保护。 因此,尽管有技术优点,F / OSS社区中的许多人还是对Mono产生了疑问。

因此,Gtk#始终是首选,因为它确实是免费的。 无论如何,许多人认为它优于Winforms。 就WPF而言,对于Novell而言,几乎可以肯定这将是一个低优先级。 他们可能最终会实施它,但我希望Moonlight在可预见的将来是您可以获得的最接近的产品。

自发布此文档以来,Microsoft已将其盟约扩展到所有实施ECMA 334和335标准的人。

Adam Lassek answered 2020-07-27T08:42:33Z

7 votes

从mono网站

至此,Mono项目完成了 没有计划实施Windows Presentation Foundation API为 项目的一部分。

Moonlight是silverlight的实现,silverlight是一种基于浏览器的类似WPF子集的Flash类似技术。

我认为不实施WPF的选择是Monos最大的错误。 随着WPF迅速成为新.net用户界面的默认选择。 有关更多信息,请参见此博客。

trampster answered 2020-07-27T08:43:07Z

4 votes

如果您检查此链接的已知错误(还包括将.NET安装到Ubuntu上所需的步骤),或者您可能会发现,某些(可能是错误的)WPF版本目前可以在Wine上使用。 我目前还没有找到任何确定的测试,但是值得尝试运行WPF“ Hello world”。

UPDATE2:

我已经在Ubuntu 16.04的最新loves programming with .NET上运行了最新的IlSpy。 通过winetricks安装了32位版本的dotnet45和corefonts,与Windows 7兼容。

这次没有崩溃,一切正常。 字体看起来真的很好。

通过WPF显示了IlSpy,对于loves programming with .NET是必不可少的工具(反编译器)的人。

我没有额外下载最新的便携式SharpDevelop(使用WPF构建)。 它开始了。 无法创建WPF项目。 创建WinForms。 在打开一些cs文件并证明了一些小故障之后,尝试键入-它崩溃了。

twKF8.png

更新

我按照步骤操作,并在Ubuntu 14.4上运行了最新的ILSpy.exe。

0wChC.png

接下来需要注意的事项:

wine表示64配置不支持dotnet40,更改为32位

字体难看,但可读

基本功能可以正常工作-我可以看到反编译的代码-对于某些开发来说已经足够了,但是查看->搜索和查看->选项->显示崩溃。

结论:

在Linux上可以使用WPF。 但是需要一些解决问题的方法。

Dzmitry Lahoda answered 2020-07-27T08:44:25Z

3 votes

有一个名为Silverform SDK的库,旨在提供跨平台的WPF和Silverlight实施。

该库以托管代码实现,当前与OpenTK和Unity3D一起用作渲染后端。 主要功能(例如绑定,布局,主要控件和基元)已经实现(请在此处查看Unity网络播放器演示)。 最初,它专注于Unity3d渲染,而将来将作为独立版本添加对独立Mono应用程序的支持。

免责声明:我是该库的开发人员之一。

Sergii Volchkov answered 2020-07-27T08:44:54Z

2 votes

在Olive主页上:

不支持Olive,应 被视为实验软件, 并且由于它实现了转换API 没有任何形式的保证 关于API的稳定性。

我怀疑有人会在实际项目中使用它。

Kent Boogaart answered 2020-07-27T08:45:23Z

2 votes

是的,可以使用NoesisGUI实时多平台XAML实现。 在Linux上已经发布了一些使用此技术的游戏,例如VoidExpanse

披露:我是该产品的开发人员之一。

jsantos answered 2020-07-27T08:45:47Z

0 votes

我大概在几周前就听到一个播客采访miguel de icaza(单声道主持人),所以大概是2008年12月中旬,他说他们还没有WPF的支持。

Orion Edwards answered 2020-07-27T08:46:08Z

-2 votes

从理论上讲,可以针对WinPR或LibWine编译WPF的剥离版本以在Linux上运行。

当前尚无此类设置,因此需要有人进行设置。 希望这会很快改变。

不论是在完整的Wine环境中还是在完整的Wine环境中运行,我认为这都是严重的过大杀伤力,并且会导致大量的膨胀,因此值得使少量的其他程序起作用。

Robert Wm Ruedisueli answered 2020-07-27T08:46:37Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值