Wpf Mono兼容应用程序的图形框架选择

Wpf Mono兼容应用程序的图形框架选择,wpf,silverlight,mono,gdi+,Wpf,Silverlight,Mono,Gdi+,我有一个应用程序,它有一些使用GDI+的控件,大多数是简单的东西,图形渲染要求很低,尽管我确实有一些动画GDI+窗口,因为GDI+性能差,所以可以使用borederline 接下来,我想开始使用WPF(为了性能和学习WPF),但我也希望代码与Mono兼容。因此,我想知道我是否应该或者可以使用Silverlight(Mono中的月光)进行开发。通过这种方式,我获得了一些WPF技能(我理解silverlight是WPF的一个子集?)和良好的性能。silverlight确实是WPF的一个子集,尽管有许

我有一个应用程序,它有一些使用GDI+的控件,大多数是简单的东西,图形渲染要求很低,尽管我确实有一些动画GDI+窗口,因为GDI+性能差,所以可以使用borederline


接下来,我想开始使用WPF(为了性能和学习WPF),但我也希望代码与Mono兼容。因此,我想知道我是否应该或者可以使用Silverlight(Mono中的月光)进行开发。通过这种方式,我获得了一些WPF技能(我理解silverlight是WPF的一个子集?)和良好的性能。

silverlight确实是WPF的一个子集,尽管有许多细节工作方式不同。Moonlight目前与Silverlight 2.0兼容,但Microsoft目前在Silverlight上的版本为4.0。月光可能总是远远落后于Silverlight,甚至远远落后于WPF。但如果你能接受,月光可能是个不错的选择。但是,如果您可能看不到任何性能改进,因为Mono正在使用Cairo渲染GDI+和Moonlight。
我还预计Mono的GDI+实现将比Moonlight的低级渲染API成熟得多。

Silverlight确实是WPF的一个子集,尽管有些细节工作方式不同。Moonlight目前与Silverlight 2.0兼容,但Microsoft目前在Silverlight上的版本为4.0。月光可能总是远远落后于Silverlight,甚至远远落后于WPF。但如果你能接受,月光可能是个不错的选择。但是,如果您可能看不到任何性能改进,因为Mono正在使用Cairo渲染GDI+和Moonlight。
我还希望Mono的GDI+实现比Moonlight的低级渲染API成熟得多。

Silverlight/Moonlight是任何类型图形和动画的更好选择。GDI+很旧,Mono实现主要是为了支持Winforms,这意味着它不会变得更好。OTOH,虽然表面上两者都使用Cairo(正如前面的海报所提到的),这就像说两者都呈现文本-是的,它们确实如此,但这几乎就是比较停止的地方。月光是快速渲染的目标,你可以得到矢量动画,只要有可能,你就可以获得图形芯片的硬件支持,因为它确实需要快速,它需要支持实时渲染效果、2D和3D等视频。这可能是它还没有达到最新Silverlight版本的标准。但这并不意味着它不能满足你的需要。如果你有选择的话,选择正在积极开发的新技术,而不是陈旧的技术。

对于任何类型的图形和动画来说,Silverlight/Moonlight都是一个更好的选择。GDI+很旧,Mono实现主要是为了支持Winforms,这意味着它不会变得更好。OTOH,虽然表面上两者都使用Cairo(正如前面的海报所提到的),这就像说两者都呈现文本-是的,它们确实如此,但这几乎就是比较停止的地方。月光是快速渲染的目标,你可以得到矢量动画,只要有可能,你就可以获得图形芯片的硬件支持,因为它确实需要快速,它需要支持实时渲染效果、2D和3D等视频。这可能是它还没有达到最新Silverlight版本的标准。但这并不意味着它不能满足你的需要。如果您有选择的话,请使用正在积极开发的新技术,而不是陈旧的技术。

C#代码使用系统提供的GDI+指令。目前,在使用Mono的Linux上,绘图不兼容

A null reference or invalid value was found [GDI+ status: InvalidParameter]
AFAIK没有人能够解决此错误。

C#使用系统提供的GDI+指令的代码。绘图目前在使用Mono的Linux上不兼容

A null reference or invalid value was found [GDI+ status: InvalidParameter]

恐怕没有人能够解决这个错误。

您希望我们回答什么?你似乎知道你想做什么!你希望我们回答什么?你似乎知道你想做什么!什么意思?我的C#代码使用VS上为.NET 4编译的System.Drawing,它在Mono中运行得非常好。哼,你是说System.Drawing由你从源代码编译而成吗?不,我是说我的代码是在VS2010下为.NET 4编译的,它使用System.Drawing命名空间在用户控件上绘制。你是什么意思?我的C#代码使用VS上为.NET 4编译的System.Drawing,它在Mono.Hum中运行得很好,你是说System.Drawing是由你从源代码编译的吗?不是,我的代码是在VS2010下为.NET 4编译的,它使用System.Drawing命名空间来绘制用户控件。