2

我需要将具有颜色名称(例如“Red”)的字符串转换为 System.Windows.Media.Color 的对象。

我正在使用以下代码:

using System.ComponentModel;

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

代码成功构建,但引发运行时异常:“ConvertFrom 未在基本 TypeConverter 中实现。”

任何帮助是极大的赞赏。谢谢!

4

2 回答 2

1

试试这个

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

于 2012-05-08T13:59:26.190 回答
0

该错误意味着 TypeConverter 级别太低而无法执行此操作,它甚至在 ConvertFrom 方法中都没有代码(称为实现),请使用System.Web.UI.WebControls.WebColorConverter

于 2012-05-08T12:47:41.967 回答