我需要将具有颜色名称(例如"红色")的字符串转换为System.Windows.Media.Color的对象。
我正在使用以下代码:
using System.ComponentModel;
TypeConverter tc = new TypeConverter();
Color bgColor = (Color)(tc.ConvertFrom((li["Background_x0020_Color"].ToString())));
代码成功构建,但抛出运行时异常:"ConvertFrom 未在基本类型转换器中实现。
任何帮助将不胜感激。谢谢!
试试这个
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