"#RRGGBB"与Color类型的转换,ColorConverter和WebColorConverter之间的差别
在System.Drawing命名空间有一个ColorConverter类,可以进行一些Color的转换操作,但它并不能满足在Web开发中的应用,比如,我们在HTML中经常会使用"#FFFCCC"之类的六位制RGB表示颜色的方法,而ColorConverter却只能将这种字符串转换成System.Drawing.Color类型的实例,不能将之再还原成"#FFFCCC"。
其实要做到"#xxxxxx"与Color类型之间的自由转换,我们可以借助System.Web.UI.WebControls.WebColorConverter类。
using System;
using System.Web.UI.WebControls;
using System.Drawing;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
ColorConverter wcc = new WebColorConverter();
Color c = (Color)wcc.ConvertFromString("#FFf000");
Console.WriteLine(c.ToString());
string blue = wcc.ConvertToString(Color.Blue);
Console.WriteLine(blue);
Console.WriteLine(wcc.ConvertToString(c));
Console.ReadLine();
}
}
}
using System.Web.UI.WebControls;
using System.Drawing;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
ColorConverter wcc = new WebColorConverter();
Color c = (Color)wcc.ConvertFromString("#FFf000");
Console.WriteLine(c.ToString());
string blue = wcc.ConvertToString(Color.Blue);
Console.WriteLine(blue);
Console.WriteLine(wcc.ConvertToString(c));
Console.ReadLine();
}
}
}
上面这段代码得到的显示分别为:
Color [A=255,R=255,G=240,B=0]
Blue
#FFF000