认识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( 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);

常见颜色:

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

 

 

转载于:https://www.cnblogs.com/chenqingwei/archive/2010/01/26/1656427.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值