2012-10-23 45 views
2

我已经颜色名称转换串色“ID”

public String colorid = "Blue"; 

而且

Sbrush = new SolidBrush(Color.Convert.ToInt32(colorid)); 

我希望能够到别的地方定义colorid,这就是为什么我写了像SolidBrush码那。现在,这并不工作,我将不胜感激,如果有人可以帮助我

+0

是什么你看到的行为?它怎么不起作用?你还试过了什么? – tmesser

+0

我从'SolidBrush'猜测这是WPF - 为了清晰起见,应该标记它。 –

+0

@DanPuzey,'SolidBrush'是GDI +。在WPF中它是'SolidColorBrush'。 –

回答

7

使用从名字中创建色彩

Color.FromName("Blue") 
+0

太棒了!还有一件事,我该如何制作 public String colorid =“Blue”; (in class Snake) 在Form1中可以这样访问: Snake.colorid =“Black”; – vlovystack

+0

@MatthiasVerhoeven将其定义为'public static readonly' –

+0

我做了你所说的,现在有public static readonly String colorid =“Black”; 但是,这是行不通的:/ – vlovystack

2

这样既支持颜色名称和HTML颜色:

string nm = "Blue"; // or f.ex. "#0000ff" 

if (nm.StartsWith("#")) { 
    return ColorTranslator.FromHtml(nm); 
} 
else { 
    return Color.FromName(nm); 
} 
+0

+1 OP没有要求HTML颜色,但我不知道'ColorTranslator' –

+0

谢谢,这会有所帮助! – vlovystack