2012-10-23 77 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