我试图在Xamarin中重用遗留的Windows GDI代码而不修改遗留的GDI代码(除了使用#if)。在这个特定的情况下,我需要使用包含在我自己的颜色结构中的Xamrin.Forms中的Color。我得到的错误无法转换为上面的问题标题中发布的。
这是不需要修改的遗留代码(或非常少)
#if WINDOWS
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Data;
using System.Windows.Forms;
#else //if Xamarin
using FakeGDI; //cannot specify 'using Xamarin.Forms;' in legacy class
#endif
namespace LegacyCode
{
public class MyClass
{
public MyClass ()
{
Color x = Color.Yellow; //must not change legacy code
}
}
}
这是使旧版GDI调用适应Xamarin.Forms
的代码using System;
//cannot specify 'using Xamarin.Forms;' I want to fully qualify Xamarin.Forms as shown below 'Xamarin.Forms.Color.Yellow;'
namespace FakeGDI
{
public struct Color
{
public static Color Yellow
{
get {
return Xamarin.Forms.Color.Yellow;
;}
}
}
}
我正在寻找的解决方案是通过我的Color结构间接编译和使用Xamarin.Forms Color结构。
允许这种转换需要什么?
由于 安娜