开发者

Is it possible to create a Mono bundle that includes WPF libraries?

开发者 https://www.devze.com 2023-01-01 19:50 出处:网络
I know WPF libraries aren´t implemented by mono cl开发者_StackOverflow中文版ass library, however(as far as I know) the mono 2.6 runtime is fully compatible with the .NET 2.0/3.5 runtime, so if the WP

I know WPF libraries aren´t implemented by mono cl开发者_StackOverflow中文版ass library, however(as far as I know) the mono 2.6 runtime is fully compatible with the .NET 2.0/3.5 runtime, so if the WPF libraries only make PInvoke calls to windows api it is theoretically possible to run a wpf application on windows using the mono runtime. The reason for wanting that is deploying a wpf application as a standalone executable for windows. Has anyone tried something like that before? If so, what were the results?


In short... No

At this point, the Mono project does not have plans to implement Windows Presentation Foundation APIs as part of the project

Mono will provide Moonlight support which, from what I understand, would also use a subset of XAML to create its UI (the same as Silverlight does) but there are legal complications involved. Such as, it's limited to non-microsoft and non-mac platforms.

If you want to find a list of open-source cross-platform alternatives to WPF/XAML I'm working to compile a list of viable alternatives.


Well I did give it a try with little success. I first checked with corflags if required dll-s are implemented in mixed mode (PresentationFramework, PresenationCore, WindowsBase, System.Xaml). They are all pure CIL implementations so that should work fine with mono. Next I installed mentioned DLLs into mono's GAC and tried running a very simple WPF application. This is what I got:

  • Assertion at mini-codegen.c:1186, condition `reginfo [sreg].born_in

    0' not met This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

So although in theory this should all work, WPF is probably way to complex to run out of the box on mono, it would be cool if there was a pure CIL implementation of WPF that was compatabile with both mono and .NET Framework.


As much as I know, Mono does not support WPF.

Also, WPF uses graphics modules and interacts directly with the GPU. So I can't see how u can use WPF with no hidden pinvokes.


Sounds like you need to read about WPF architecture to better understand it.

http://msdn.microsoft.com/en-us/library/ms750441.aspx

Many pieces are missing in Mono and solely available in .NET. Therefore, your "theory" is not correct, and you cannot run WPF applications on Mono, even on Windows.


At MIX 2010 Miguel de Icaza said in his session that Mono isn't going to support WPF. Anything tangentially related to WPF-like support is only to provide what is needed for Moonlight.


Not fully, but..

You can use Moonlight 4 ( silverlight 4 ) in a desktop mode:-

https://github.com/inorton/MoonBase - MVVM helpers

https://github.com/inorton/XamlPreviewer - XamlPad clone

0

精彩评论

暂无评论...
验证码 换一张
取 消