1

Windows Phone (または Silverlight) には System.Windows.Media.ColorConverter がないため、"Red" などの色名を含む文字列を取得し、そこから Color オブジェクトを生成する別の方法が必要です。

この可能性を見つけましたが、colorType.GetProperty が常に null を返すため機能しません。

public static Color ConvertFromString(string colorString)
{
    Color retval = Colors.Transparent;

    Type colorType = (typeof(Colors));

    if (colorType.GetProperty(colorString) != null)
    {
        object o = colorType.InvokeMember(colorString,
            BindingFlags.GetProperty, null, null, null); 

        if (o != null)
        {
            retval =  (Color)o;
        }
    }

    return retval;
}

何か案は?

4

2 に答える 2

2

これを試して :

public static Color GetColor(String ColorName)
{
    Type colors = typeof(System.Windows.Media.Colors);
    foreach(var prop in colors.GetProperties())
    {
        if(prop.Name == ColorName)
            return ((System.Windows.Media.Color)prop.GetValue(null, null));
    }

    throw new Exception("No color found");
}
于 2013-05-29T20:33:54.130 に答える