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

@serhio: per favore, in futuro, indica la tua domanda a parole. – Oded

+0

Solo che alcune persone vedranno questo e non vedono una domanda (quindi si può votare per chiudere come "non una vera domanda"). Non dimenticare che vogliamo anche che queste domande vengano trovate da google e fare una domanda vera ti aiuterà a ottenere questa domanda nei risultati di ricerca. – Oded

+0

@Oded: non ho trovato cose da commentare qui. – serhio

risposta

38

ne dite:

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: Risolto il 'spacchettamento' del ARGB.

+0

Nessun sovraccarico per il metodo 'FromArgb' richiede 1 argomenti – serhio

+0

@serhio: hai ragione, mi dispiace. Che ne dici adesso? – Ani

+3

@Ani: non vedo proprio bisogno di "usare" qui :) – serhio

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

oops, too late :) – Kell

+0

approccio non corretto, non è necessario trasformare il colore * Red *, ma una variabile di colore :) – serhio

+6

hmmm ... forse dovresti estrapolare la risposta come ho estrapolato sulla "domanda" ":) – Kell

Problemi correlati