C# 的Color 颜色转换

简介:

// 方法1:
// 引用命名空间 using System.Drawing;

16进制颜色代码转Color类型:ColorTranslator.FromHtml(color);
Color类型转16进制颜色代码:ColorTranslator.ToHtml(_color);

// 方法2:
          ///   <summary>
        
///  将字符串转换为Color
        
///   </summary>
        
///   <param name="color"> 带#号的16进制颜色 </param>
        
///   <returns></returns>
         public  Color ToColor( string  color)
        {

            
int  red, green, blue  =   0 ;
            
char [] rgb;
            color 
=  color.TrimStart( ' # ' );
            color 
=  Regex.Replace(color.ToLower(),  " [g-zG-Z] " "" );
            
switch  (color.Length)
            {
                
case   3 :
                    rgb 
=  color.ToCharArray();
                    red 
=  Convert.ToInt32(rgb[ 0 ].ToString()  +  rgb[ 0 ].ToString(),  16 );
                    green 
=  Convert.ToInt32(rgb[ 1 ].ToString()  +  rgb[ 1 ].ToString(),  16 );
                    blue 
=  Convert.ToInt32(rgb[ 2 ].ToString()  +  rgb[ 2 ].ToString(),  16 );
                    
return  Color.FromArgb(red, green, blue);
                
case   6 :
                    rgb 
=  color.ToCharArray();
                    red 
=  Convert.ToInt32(rgb[ 0 ].ToString()  +  rgb[ 1 ].ToString(),  16 );
                    green 
=  Convert.ToInt32(rgb[ 2 ].ToString()  +  rgb[ 3 ].ToString(),  16 );
                    blue 
=  Convert.ToInt32(rgb[ 4 ].ToString()  +  rgb[ 5 ].ToString(),  16 );
                    
return  Color.FromArgb(red, green, blue);
                
default :
                    
return  Color.FromName(color);

            }
        }

        
public   string  ColorToHex(Color _color)
        {
            
// return "#" + String.Format("{0:X}", Color.FromArgb(_color.R, _color.G, _color.B).ToArgb()).Substring(2);
            
// return Convert.ToString(Color.FromArgb(_color.R, _color.G, _color.B).ToArgb(), 16).Substring(2);

        }



本文转自远哥博客园博客,原文链接:http://www.cnblogs.com/taven/archive/2009/09/26/1574329.html,如需转载请自行联系原作者
相关文章
|
小程序 C#
C#WinForm实现Loading等待界面
上篇博客中解决了程序加载时屏幕闪烁的问题。 但是,加载的过程变得很缓慢。 这个给用户的体验也不是很好,我这里想加一个Loading的进度条。 项目启动的时候,加载进度条,界面UI加载完毕,进度条消失。
908 0
|
编解码 程序员 atlas
Unity 之 图集属性详解和代码示例 -- 拓展一键自动打包图集工具
图集只是当所有给低昂的纹理需要相同的着色器时采用的一种方法,如果一些纹理需要通过着色器应用独立的图形效果,它们就必须分离到自己的材质中,并在单独的组中打图集。
2611 0
Unity 之 图集属性详解和代码示例 -- 拓展一键自动打包图集工具
|
SQL
SQL获取当月天数的几种方法
原文:SQL获取当月天数的几种方法 日期直接减去int类型的数字 等于 DATEADD(DAY,- 数字,日期) 下面三种方法: 1,日期加一个月减去当前天数,相当于这个月最后一天的日期。然后获取天数。
5707 1
|
8月前
|
C#
C#-ListBox多选绑定
在WPF中,ListBox的SelectedItems属性为只读,无法直接绑定多选数据。本文通过定义一个附加属性实现双向绑定,利用依赖属性和事件监听同步选中项,从而解决该问题。
305 8
|
测试技术 C# 数据库
C# 单元测试框架 NUnit 一分钟浅谈
【10月更文挑战第17天】单元测试是软件开发中重要的质量保证手段,NUnit 是一个广泛使用的 .NET 单元测试框架。本文从基础到进阶介绍了 NUnit 的使用方法,包括安装、基本用法、参数化测试、异步测试等,并探讨了常见问题和易错点,旨在帮助开发者有效利用单元测试提高代码质量和开发效率。
796 64
|
安全 图形学
【unity实战】事件(Event)的基本实战使用
【unity实战】事件(Event)的基本实战使用
1128 1
|
C# 数据安全/隐私保护
C#使用 MailKit 收发邮件
【10月更文挑战第15天】在C#中使用MailKit库可轻松实现邮件的发送与接收。首先需通过NuGet包管理器安装MailKit,并编写代码设置发件人、收件人、邮件主题及正文,连接邮件服务器并认证后即可发送邮件。接收邮件时,同样需连接服务器并认证,然后打开收件箱遍历读取邮件信息。整个过程需根据实际邮件服务器配置相应参数。
850 4
|
开发框架 .NET 编译器
总结一下 C# 如何自定义特性 Attribute 并进行应用
总结一下 C# 如何自定义特性 Attribute 并进行应用
500 1
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
632 0
|
数据可视化 大数据 API
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用
1463 0

热门文章

最新文章