public static Color ColorFromString(string value)
{
if (String.IsNullOrEmpty(value))
return Color.Empty;
if (value.StartsWith("#"))
{
try
{
return Color.FromArgb(
Byte.Parse(value.Substring(1, 2), NumberStyles.HexNumber),
Byte.Parse(value.Substring(3, 2), NumberStyles.HexNumber),
Byte.Parse(value.Substring(5, 2), NumberStyles.HexNumber));
}
catch(Exception e) //logged
{
Logger.WriteException(e);
return Color.Empty;
}
}
var colorString = value;
//"Color [Red]"
colorString = colorString.Replace("Color [", "").Replace("]", "");
if (colorString == "Empty")
return Color.Empty;
try
{
return Color.FromKnownColor((KnownColor)Enum.Parse(typeof(KnownColor), colorString, true));
}
catch (Exception e) //logged
{
Logger.WriteException(e);
return Color.Empty;
}
}