不能使用特殊编码注意事项将类型`Xamarin.Forms.Color'隐式转换为`FakeGDI.Color'

时间:2016-05-29 03:36:15

标签: c# .net design-patterns xamarin gdi

我试图在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结构。

允许这种转换需要什么?

由于 安娜

0 个答案:

没有答案