在Mono上使用WPF的Point和Color类

时间:2015-03-12 21:15:48

标签: c# .net wpf mono

我正在开发一个具有客户端和服务器的应用程序。每个人通过共享类库共享相似的代码。类库和服务器都依赖于WPF的Color(在PresentationCore.dll中)和Point(在WindowsBase.dll中)类。 (但依赖于这两个WPF类)

服务器和客户端库在Linux上运行Mono就好了,直到执行使用ColorPoint类的代码,因为WPF没有移植到Mono。

  

System.IO.FileNotFoundException:无法加载文件或程序集' PresentationCore,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖。

我通过在我的本地计算机上添加自己的PresentationCore.dll来修复此问题(希望单声道"转置"代码与应用程序一样),这解决了问题,直到颜色上课是必要的。 (但是,点类现在工作正常)

使用颜色类导致:

  

System.InvalidProgramException:System.Windows.Media.Color中的IL代码无效:Fr omRgb(字节,字节,字节):方法体为空。

我尝试使用extern alias并实现了颜色类的Mono Moon版本,找到了here。在服务器上使用它,以及客户端上的PresentationCore版本以及每个版本的不同别名在某种程度上有效。它在服务器端工作正常,但是当客户端需要使用包含Color的对象时,WPF无法将类的Mono版本强制转换为WPF版本。 (我可以自动投射,但后来我会处于相反的情况,客户工作但不是服务器)

无论如何,这是我迄今为止所发现的研究。有一个想法,我试图编译Mono Moon并将其添加到Mono GAC或我的程序目录,虽然我无法弄清楚如何编译它(具体来说,制作"配置"),以及是否它甚至会起作用。

在我的情况下,有没有办法在Mono上使用WPF Color课程? (不需要WPF框架的其余部分)请记住,包含使用Color类的对象的共享库在客户端和服务器之间共享。

0 个答案:

没有答案