很硬性的转换,谁知道更好的忘不吝赐教啊。
/// <summary>
/// String To Color
/// </summary>
/// <param name="color">例如#FFFF0000,红色</param>
/// <returns></returns>
public Color ReturnColorFromString(string color)
{
//#FFFF0000,A,R,G,B。
color = color.Substring(1, color.Length - 1);
string alpha = color.Substring(0, 2);
string red = color.Substring(2, 2);
string green = color.Substring(4, 2);
string blue = color.Substring(6, 2);
byte alphaByte = Convert.ToByte(alpha, 16);
byte redByte = Convert.ToByte(red, 16);
byte greenByte = Convert.ToByte(green, 16);
byte blueByte = Convert.ToByte(blue, 16);
return Color.FromArgb(alphaByte, redByte, greenByte, blueByte);
}
public static Color ToColor(this string colorName)
{
if (colorName.StartsWith("#"))
colorName = colorName.Replace("#", string.Empty);
var v = int.Parse(colorName, System.Globalization.NumberStyles.HexNumber);
return new Color
{
A = Convert.ToByte((v >> 24) & 255),
R = Convert.ToByte((v >> 16) & 255),
G = Convert.ToByte((v >> 8) & 255),
B = Convert.ToByte((v >> 0) & 255)
};
}