2014-12-04 29 views
1

我試圖在C#中將string轉換爲SolidColorBrush。我正在使用的代碼是:如何將字符串轉換爲C#中的SolidColorBrush?

arrColors[arrColors.Length - 1] = 
         (SolidColorBrush)new BrushConverter().ConvertFromString(sLine); 

其中sLine是從文本文件讀取的字符串。例如,sLine可能是「黑色」。

此代碼給我一個FormatException

回答

4

假設你所有的刷子都是純色,你可以從一個字符串建立一個顏色,如下所示:

Color color = (Color)ColorConverter.ConvertFromString(sLine); 

然後,你可以創建從顏色SolidColorBrush,像這樣:

SolidColorBrush brush = new SolidColorBrush(color); 

編輯:如果要轉換的字符串是英文但當前文化不是,則可能需要使用ConvertFromInvariantString,如下所示:

ColorConverter converter = new ColorConverter(); 
Color color = (Color)converter.ConvertFromInvariantString(sLine); 
+0

謝謝,但沒有任何使用語句Color.FromName我需要使用?現在它給了我'System.Windows.Media.Color'不包含'FromName'的定義。 – 2014-12-04 20:21:19

+0

所以你在WPF上? – TaW 2014-12-04 20:22:01

+0

是的@TaW。事實是,有幾種顏色進入我的陣列。所以我不能使用Color.FromName(「黑色」)或類似的東西。 – 2014-12-04 20:23:24

0

試試這個:

var color = (Color)ColorConverter.ConvertFromString(sLine); 
var brush = new SolidColorBrush(color); 
相關問題