首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从十六进制颜色值创建SolidColorBrush

从十六进制颜色值创建SolidColorBrush
EN

Stack Overflow用户
提问于 2012-04-08 19:16:49
回答 6查看 149.1K关注 0票数 141

我想从十六进制值创建SolidColorBrush。我该怎么做呢?

在MSDN上,我得到了:

代码语言:javascript
复制
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);

所以我写道(考虑到我的方法接收颜色作为#ffaacc):

代码语言:javascript
复制
Color.FromRgb(
  Convert.ToInt32(color.Substring(1, 2), 16), 
  Convert.ToInt32(color.Substring(3, 2), 16), 
  Convert.ToInt32(color.Substring(5, 2), 16));

但是这给出了错误,因为

The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments

还有3个错误:Cannot convert int to byte.

那么MSDN示例是如何工作的呢?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-05-23 05:09:02

试着这样做:

代码语言:javascript
复制
(SolidColorBrush)new BrushConverter().ConvertFrom("#ffaacc");
票数 361
EN

Stack Overflow用户

发布于 2016-05-25 03:35:27

我一直在用:

代码语言:javascript
复制
new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ffaacc"));
票数 22
EN

Stack Overflow用户

发布于 2012-04-08 19:50:07

How to get Color from Hexadecimal color code using .NET?

我想这就是你想要的,希望它能回答你的问题。

要让代码正常工作,请使用Convert.ToByte而不是Convert.ToInt...

代码语言:javascript
复制
string colour = "#ffaacc";

Color.FromRgb(
Convert.ToByte(colour.Substring(1,2),16),
Convert.ToByte(colour.Substring(3,2),16),
Convert.ToByte(colour.Substring(5,2),16));
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10062376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档