认识Color 类
{
System.Drawing.Color color;
if (colorString[0] == '#' && colorString.Length < 8)
{
string s = colorString.Substring(1);
while (s.Length != 6)
{
s = string.Concat("0", s);
}
int red = Convert.ToInt32(s.Substring(0, 2), 16);
int green = Convert.ToInt32(s.Substring(2, 2), 16);
int blue = Convert.ToInt32(s.Substring(4, 2), 16);
color = System.Drawing.Color.FromArgb(red, green, blue);
}
else
{
color = System.Drawing.Color.FromName(colorString);
}
return color;
}
public static string ColorToString(System.Drawing.Color color)
{
string result;
if (color.IsKnownColor || color.IsNamedColor || color.IsSystemColor)
{
result = color.Name;
}
else
{
result = string.Concat("#", color.ToArgb().ToString("X").Substring(2));
}
return result;
}
>>把Color转变成#FFFFFF格式的字符串
Color c = Color.White;
String s = String.Format("#{0:X2}{1:X2}{2:X2}",c.R,c.G,c.B);
>>#FFFFFF格式的字符串转变成Color
Color c = System.Drawing.ColorTranslator.FromHtml("#FF0000");
Color结构:表示ARGB颜色
[SerializableAttribute]
public struct Color
Color.FromArgb方法
基于四个8位ARGB分量(alpha,红色,绿色,和蓝色)值创建Color结构.
重载列表:
Color.FromArgb(Int32) 从一个32位ARGB值创建Color结构
注意:32位ARGB值的字节顺序为AARRGGBB 分别代表 alpha分量值,红色,绿色,蓝色.
Color.FromArgb(0x78FF0000);
Color.FromArgb(Int32,Color) 从指定的结构创建Color结构,但要使用新指定的alpha值.
注意:alpha是新Color的alpha值,有效值为从0到255.
Color.FromArgb(alpha,Color.Red);
Color.FromArgb(Int32,Int32,Int32) 从指定的8位颜色值(RGB)创建Color结构,alpha默认为255完全不透明.
Color.FromA#0000ff;
Color.FromArgb(Int32,Int32,Int32,Int32) 从四个ARGB分量值创建Color结构.
Color.FromArgb(120,0,255,0);
常见颜色:
系统颜色:
ColorConverter类 将颜色从一种数据类型转换为另一种数据类型,通过TypeDescriptor访问此类.
public class ColorConverter :TypeConverter
注意:当从某个字符串转换为Color时,ColorConverter要求使用非限定颜色名称;应该是Blue
而不是System.Drawing.Color.Blue 或Color.Blue
Color myColor = Color.PaleVioletRed;
System.ComponentModel.TypeConverter converter = System.ComponentModel.TypeDescriptor.GetConverter(myColor);
string colorAsString = converter.ConvertToString(Color.PaleVioletRed);
还有一个ColorTranslator类 sealed
常用方法:
FromHtml将HTML颜色表示形式翻译成GDI+Color结构
Color myColor = ColorTranslator.FromHtml("Blue");
FromOle将OLE颜色翻译成GDI+Color结构
int oleColor = 0xFF00;
Color myColor = ColorTranslator.FromOle(oleColor);
FromWin32 将 Windows 颜色值翻译成 GDI+ Color 结构。
int winColor = 0xA000;
Color myColor = ColorTranslator.FromWin32(winColor);