认识Color 类

 

     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(02), 16);
                
int green = Convert.ToInt32(s.Substring(22), 16);
                
int blue = Convert.ToInt32(s.Substring(42), 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);

常见颜色:

Black, silver, gray, white, maroon, red, purple, fuchsia, green, lime, olive, yellow, navy, blue, teal, and aqua.

 

系统颜色:

CaptionText on ActiveCaption, ButtonText on ButtonFace, WindowText on Window, etc.

 

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);

 

 

posted @ 2010-01-26 09:03  smodi  阅读(7296)  评论(0编辑  收藏  举报