public static System.Drawing.Color ConvertStringToColor(string colorString)
{
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);