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

@serhio - proszę, w przyszłości zadaj pytanie słowami. – Oded

+0

Tyle, że niektórzy ludzie to zobaczą i nie zobaczą pytania (więc może głosować, by zamknąć jako "nie jest to prawdziwe pytanie"). Nie zapominaj, że chcemy również, aby te pytania zostały znalezione przez Google, a zadawanie rzeczywistych pytań pomoże w uzyskaniu tego pytania w wynikach wyszukiwania. – Oded

+0

@Oded: Nie znalazłem tutaj rzeczy do komentowania. – serhio

Odpowiedz

38

Jak o:

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: Fixed 'rozpakowaniu' z aRGB.

+0

Bez przeciążenia dla metody "FromArgb" przyjmuje 1 argumenty – serhio

+0

@serhio: Masz rację, przepraszam. A teraz? – Ani

+3

@Ani: nie widzę potrzeby "używania" tutaj :) – serhio

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

oops, za późno :) – Kell

+0

nie poprawne podejście, nie muszę transformować koloru * Red *, ale zmienną koloru :) – serhio

+6

hmmm ... może powinieneś ekstrapolować na odpowiedź, jak ekstrapolowałem na "pytanie ":) – Kell