2010-11-05 13 views
23
System.Drawing.Color drawRedColor = System.Drawing.Color.Red; 
System.Windows.Media.Color mediaColor = ?drawRedColor.ToMediaColor();? 
+7

@serhio - por favor, en el futuro, formule su pregunta en palabras. – Oded

+0

Solo que algunas personas verán esto y no verán una pregunta (por lo que pueden votar para cerrar como "no es una pregunta real"). No olvide que también queremos que google encuentre estas preguntas, y hacer una pregunta real ayudará a obtener esta pregunta en los resultados de búsqueda. – Oded

+0

@Oded: No encontré cosas para comentar aquí. – serhio

Respuesta

38

¿Qué tal:

using MColor = System.Windows.Media.Color; 
using DColor = System.Drawing.Color; 
... 

public static MColor ToMediaColor(this DColor color) 
{ 
    return MColor.FromArgb(color.A, color.R, color.G, color.B); 
} 

EDIT: Se ha solucionado el 'desembalaje' de la ARGB.

+0

Sin sobrecarga para el método 'FromArgb' toma 1 argumentos – serhio

+0

@serhio: Tienes razón, lo siento. ¿Que tal ahora? – Ani

+3

@Ani: no veo una necesidad real de "usar" s aquí :) – serhio

7
System.Windows.Media.Color mediaColor = System.Windows.Media.Color.FromRgb(Color.Red.R, Color.Red.G, Color.Red.B); 
+3

oops, demasiado tarde :) – Kell

+0

enfoque no correcto, no necesito transformar el * color * Rojo, pero una variable de color :) – serhio

+6

hmmm ... tal vez deberías extrapolar en la respuesta cuando extrapolé en la "pregunta ":) – Kell

Cuestiones relacionadas