2012-08-28 37 views

Respuesta

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

Nota: el hash es importante!

+0

Gracias. Funciona – user1531040

+0

Hash es realmente importante, sino que el color no será preciso. – teapeng

+1

¿Qué tal en UWP, donde no hay espacio de nombres System.Drawing? –

4

Retire el '#' y hacer

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

Hay opciones disponibles que no requieren la conversión a un valor numérico, este es un paso innecesario. El OP dice que es una cadena – freefaller

+2

Las otras soluciones también están convirtiendo la cadena en un valor numérico, solo lo están haciendo internamente. Si se trata de una cuestión de optimización, se requerirán pruebas de rendimiento para ver cómo 'Color.FromArgb()' w/'int.Parse()' se compara con 'ColorConvertor.ConvertFromString()' y 'ColorTranslator.FromHtml()' . – jwatts1980

+0

¿No tendrá eso un valor alfa de 0? – Nyerguds

21

Usted puede hacer

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

O esto (se necesita el espacio de nombres System.Windows.Media)

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

Cuando convierto en blanco, no obtengo exactamente el color blanco. –

Cuestiones relacionadas