在给Background赋值时,除了自带的Red,Blue,Black等,可以通过以下方法赋予其他颜色。

主要是将Hex转换成ARGB(A:alpha,表示透明度、R:Red、G:Green、B:Blue),其中ARGB取值均在0--255之间

该方法传入的字符串参数可以类似 #21459A 或者 #FF21459A

public static Color? GetColorFromHex(String colorStr)  //? 表示返回值可以为null                                     
{
if (colorStr != null && (colorStr.Length == 7 || colorStr.Length == 9))
{
byte a = 255;
int posi = 1;
if (colorStr.Length == 9)
{
a = Byte.Parse(colorStr.Substring(posi, 2), NumberStyles.HexNumber);
posi += 2;
}
byte r = Byte.Parse(colorStr.Substring(posi, 2), NumberStyles.HexNumber);
posi += 2;
byte g = Byte.Parse(colorStr.Substring(posi, 2), NumberStyles.HexNumber);
posi += 2;
byte b = Byte.Parse(colorStr.Substring(posi, 2), NumberStyles.HexNumber); return Color.FromArgb(a, r, g, b);
}
return null;
}

之后给背景色赋值

 grid.Background= new SolidColorBrush(GetColorFromHex("#21459A").Value);

当然在知道RGB的时候也可以采取如下方式:

 grid.Background = new SolidColorBrush() { Color = Color.FromArgb(,, , ) };

//this.Foreground = new SolidColorBrush(Color.FromArgb(255,33, 69, 154) );    //未创建对象  这种方法不行

PS: 在编程过程中,复制Win8.1上的Skype别人发来的色值字符串.长度竟然会比正常的多一位。

(原因是在末尾会有一个为“”的东西。。。的确为空,但是用键盘方向键就可以观察到里面是有东西的)

且能够提取到这个为空的字符。也因为这个小细节苦恼了好久。。‏

将十六进制色值转换成Color的更多相关文章

  1. Java中将0x开头的十六进制字符串转换成十进制整数

    1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...

  2. string转换成color转

    string转换成color             string col = "#FF8400";            this.BackColor = System.Draw ...

  3. wpf中将string格式的颜色转换成color类型

    wpf中Brushes有很多对应的颜色,先盗张图,每个颜色对于的名称和ARGB值有了,问题是有时候我们取到的颜色是ARGB值,而且是string类型的,该怎么转换成color呢,只有转换成color之 ...

  4. C#中将表示颜色的string转换成Color

    场景 在Winform中需要存储某控件的Color属性,存储的是string字符串, 然后再对控件进行赋值时需要将string转换成Color. 实现 myPane.YAxis.Color = Sys ...

  5. IOS 十六进制字符串转换成UIColor

    /** * 十六进制转换成UIColor * * @param stringToConvert 十六进制字符串 * * @return UIColor */ +(UIColor *) hexStrin ...

  6. 16进制色值转换成RGB

    #51147f  转换成RGB ,5*16+1 ,1*16+4,7*16+15 #A9A9A9 转换成RGB ,A*16+9 ,A*16+9,A*16+9

  7. IOS中将十进制色值转换成UIColor

    最近因项目需要,在网上找了一些代码,整合了一下,实现的效果就是将10进制的RGB色值转换IOS用的UIColor,方法还有缺陷,有待改进 UIColor *getColorFromString(NSS ...

  8. C++中char类型的十六进制字符串转换成字节流

    如a[5]="1234"转换成a[5]={0x12,0x34} 代码如下: void HexStrToByte(const char* source, unsigned char* ...

  9. Java - 将vCard中十六进制编码转换成Unicode

    做课程设计的时候在处理vCard格式的时候遇到过出现十六进制编码的情况,例如 QUOTED-PRINTABLE:=XX=XX=XX=XX=XX`````` 其中XX代表十六进制数,当然,也有可能在末尾 ...

随机推荐

  1. BOM与事件

    PPK谈JS学习笔记第二弹 JS的语言核心和DOM之间有一个过渡层,一般称为BOM,浏览器对象模型.是指JS的客户端实现,它不操作DOM,又不是JS的语言核心,它的主要功能是管理浏览器窗口,每个窗口都 ...

  2. [WPF系列]-基础系列 TabControl应用

    引言 Tabcontrol控件也是我们在项目中经常用到的一个控件,用它将相关的信息组织在一起分类显示. 简介     ========================================= ...

  3. BI领导驾驶舱的功能特点

    随着企业的信息化能力越来越强,商业智能(BI)对他们而言已不仅仅是数据展现的工具.商业智能必须能够与企业的业务流程相联系,做企业随需随用的“战略军师”.“BI领导驾驶舱”的出现无疑顺应了BI的发展趋势 ...

  4. 使用IntelliJ IDEA搭建多maven模块JAVA项目

    一.新建项目和模块 步骤: 1. 新建一个项目,因为maven管理jar包非常方便,故此处建立一个maven项目:New Project->Maven->(Create from arch ...

  5. (转)java字节流和字符流的区别

    转载: http://www.cnblogs.com/dolphin0520/category/361055.html 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同 ...

  6. spring3.0+mybatis+spring快速入门

    一.首先奉上项目目录结构: 说明: dao,mapping,model包下的所有内容可以使用Generator工具自助生成. 具体用法,可以网上学习一下,比较简单,主要做以下工作: 1.提供相关的数据 ...

  7. CF732D. Exams[二分答案 贪心]

    D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  8. node基础11:接受参数

    1.接收参数 在Node中接受GET/POST请求的参数不像PHP那样,在PHP中直接有全局变量$_GET,$_POST来接受url,或者请求体重的参数. 在node中接受GET参数使用url.par ...

  9. SQLserver中用convert函数转换日期格式

    SQLserver中用convert函数转换日期格式 2008-01-23 15:47 SQLserver中用convert函数转换日期格式2008-01-15 15:51SQLserver中用con ...

  10. 微博公众平台(二)-- Token验证代码

    Token,验证逻辑:1.将Token.timestamp.nonce放入数组 2.将数组从小到大排列 3.将数组按顺序拼装成一个字符串 4.对生成的字符串进行SHA1加密 5.将密文转换为小写 6. ...