2012-08-28 25 views

risposta

185
string hex = "#FFFFFF"; 
Color _color = System.Drawing.ColorTranslator.FromHtml(hex); 

Nota: l'hash è importante!

+0

Grazie. Funziona – user1531040

+0

L'hash è molto importante, altrimenti il ​​colore non sarà accurato. – teapeng

+1

Cosa succede in UWP, dove non esiste uno spazio dei nomi System.Drawing? –

4

Rimuovere il '#' e fare

Color c = Color.FromArgb(int.Parse("#FFFFFF".Replace("#",""), 
         System.Globalization.NumberStyles.AllowHexSpecifier)); 
+0

Ci sono opzioni disponibili che non richiedono la conversione in un valore numerico, questo è un passaggio non necessario. L'OP indica che è una stringa – freefaller

+2

Le altre soluzioni stanno convertendo la stringa in un valore numerico, lo stanno facendo solo internamente. Se questa è una questione di ottimizzazione, sarà necessario eseguire il test delle prestazioni per vedere come 'Color.FromArgb()' w/'int.Parse()' confronta con 'ColorConvertor.ConvertFromString()' e 'ColorTranslator.FromHtml()' . – jwatts1980

+0

Non avrà un valore alfa di 0? – Nyerguds

21

Si può fare

var color = System.Drawing.ColorTranslator.FromHtml("#FFFFFF"); 

O questo (è necessario il System.Windows.Media namespace)

var color = (Color)ColorConverter.ConvertFromString("#FFFFFF"); 
+0

Quando converto il bianco, non ottengo esattamente il colore bianco. –

Problemi correlati