无法将类型 System.Drawing.Color 隐式转换为 System.Drawing.Brush

海洋夜之星 2012-07-16 08:54:06
如题,我这边获取的数据是16位进制的颜色,但是却要用brushes.颜色的类去填充颜色,请问下高手怎么解决这个转换问题,十分感谢……
...全文
1007 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
小排611 2012-08-03
  • 打赏
  • 举报
回复
我也遇到类似问题,求高手指点。
叫我三三 2012-07-16
  • 打赏
  • 举报
回复
WPF吗?

//这里使用16位数字表示颜色,你可以换其他的
private static Color ConvertToColor(string htmlcolor)
{
System.Drawing.Color color = System.Drawing.ColorTranslator.FromHtml(htmlcolor);
System.Windows.Media.Color newcolor = System.Windows.Media.Color.FromRgb(color.R, color.G, color.B);
return newcolor;
}
xxx = new SolidColorBrush(ConvertToColor("#ADD8E6"));

使用Brushes的话直接用 xxx = Brushes.White;
或者你对Brushes.White;
中的Brushes直接双击,会弹出颜色面板,自己在颜色面板里选择你想要的颜色
StarlightHan 2012-07-16
  • 打赏
  • 举报
回复
object obsb = Color.Red;
Brush brush = (Brush)obsb;
  • 打赏
  • 举报
回复
Color.FromArgb?
dd_zhouqian 2012-07-16
  • 打赏
  • 举报
回复
指针强制转换为某类型的对象实例?
海洋夜之星 2012-07-16
  • 打赏
  • 举报
回复
可能是我没把问题说清楚,我再详细说下:我现在需要把16位进制的颜色转换为brush类型的,原本我是直接用brushes.xxxxx的,但是现在的数据是16位进制的颜色,而且我是需要返回brush类型的,也就是说诸如 new SolidBrush(Color.Red);是错的,因为他返回的是color的类型,我这边是不能用的,问题就是这样了,简单点讲就是要把16位进制的颜色转换为brush类型的,请高手指教,十分感谢……
海洋夜之星 2012-07-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

提示明显是你类型用错了,你可以直接用Brushes.xxxx,或者 诸如 new SolidBrush(Color.Red);
[/Quote]

诸如 new SolidBrush(Color.Red);是错的,他返回的是color的类型,而我需要的是返回brush的类型,我试过new SolidBrush(Color.Red);,他就报这个类型的错误
c2606050113 2012-07-16
  • 打赏
  • 举报
回复
正解
[Quote=引用 1 楼 的回复:]
提示明显是你类型用错了,你可以直接用Brushes.xxxx,或者 诸如 new SolidBrush(Color.Red);
[/Quote]
天下如山 2012-07-16
  • 打赏
  • 举报
回复
可使用SolidBrush看看 有SolidBrush.Color。
bdmh 2012-07-16
  • 打赏
  • 举报
回复
提示明显是你类型用错了,你可以直接用Brushes.xxxx,或者 诸如 new SolidBrush(Color.Red);
海洋夜之星 2012-07-16
  • 打赏
  • 举报
回复
以上回复都不是正解,经过我的思考我还是找不到更好的方法,于是我只能手工打造了个转换类库,可以直接把16进制颜色传进去返回brush颜色。地址是:http://download.csdn.net/detail/dahaianb/4431496

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧