"#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();
        }

    }

}


上面这段代码得到的显示分别为:
Color [A=255,R=255,G=240,B=0]
Blue
#FFF000

posted @ 2005-08-16 15:02 Lyn 阅读(1887) 评论(8)  编辑 收藏 所属分类: ASP.netASP.net server components and controls

  回复  引用  查看    
#1楼 2005-08-16 15:43 | Goodspeed      
你忘了,还有一个ColorTranslator 类

将颜色翻译成 GDI+ Color 结构并从该结构翻译颜色。

Color c = ColorTranslator.FromHtml("#FFf000");
ColorTranslator.ToHtml(Color.Blue);
ColorTranslator.ToHtml(c);
  回复  引用  查看    
#2楼 [楼主]2005-08-16 15:52 | THIN      
对,ColorTranslator可以做到以上效果,只是如果在写控件时,指定TypeConverter还是要使用WebColorConverter
  回复  引用    
#3楼 2005-11-07 14:31 | 就是笨 [未注册用户]
不知道为什么在VB.NET中,下面这条语句会报错
If Label2.ForeColor = System.Drawing.Color.Black
说这里不能用等号,???请赐教。
  回复  引用  查看    
#4楼 [楼主]2005-11-07 16:09 | THIN      
If Label2.ForeColor == System.Drawing.Color.Black 少写了一个等号

  回复  引用  查看    
#5楼 [楼主]2005-11-07 16:10 | THIN      
if 后面只能是true / false,VB.net不熟,应该也是一样的
  回复  引用  查看    
#6楼 2006-09-07 09:50 | BoyLee      
小弟新手,刚好碰到问题,搜索到这里,感谢感谢
  回复  引用    
#7楼 2007-06-29 10:13 | nuaa [未注册用户]
不知道这条语句为什么会报错,说是”ColorConverter 无法从 System.Int32 转换”,
ShpLeftDrv.BackColor = c.ConvertFrom(&HFF00FF)
该怎么改?谢谢!
  回复  引用  查看    
#8楼 [楼主]2007-06-29 11:28 | THIN      
Converter是进行字符串与某种类型之间的转换,怎么能用来转换Int和Color,c.ConvertFrom(&HFF00FF.ToString("X"))

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: