Как преобразовать строку в цвет в модели объекта клиента SharePoint для silverlight?

Мне нужно преобразовать строку с именем цвета (например, "Красный") в объект System.Windows.Media.Color.

Я использую следующий код:

using System.ComponentModel;

TypeConverter tc = new TypeConverter();
Color bgColor = (Color)(tc.ConvertFrom((li["Background_x0020_Color"].ToString())));

Код создается успешно, но выдает исключение времени выполнения: "ConvertFrom не реализован в базовом TypeConverter".

Любая помощь с благодарностью. Спасибо!

2 ответа

Решение

Попробуй это

Color c;
Type colorType = (typeof(System.Windows.Media.Colors));
if (colorType.GetProperty(slist.color) != null)
{
    object o = colorType.InvokeMember("Red", BindingFlags.GetProperty, null, null, null);
    if (o != null)
    {
        c = (Color)o;
    }
    else
    {
        c = Colors.Black;
    }
}
else
{
    c = Colors.Black;
}
Brush color = new SolidColorBrush(c);

http://jyothsnag.blogspot.in/2011/04/convert-string-to-color-object-in.html

Ошибка означает, что TypeConverter находится на слишком низком уровне, чтобы сделать это, у него даже нет кода (называемого реализацией) внутри метода ConvertFrom, используйте System.Web.UI.WebControls.WebColorConverter