Ich muss eine Farbe in einer WPF-Anwendung in einer Datenbank serialisieren. Ich würde gerne die sRGB-Werte verwenden, weil sie denen von uns vertrauter sind, die in den letzten Jahren Web-Entwicklung betrieben haben.Wie serialisiert ich ein System.Windows.Media.Color -Objekt zu einer sRGB-Zeichenfolge?
Wie kann eine ARGB-Zeichenfolge (wie #FFFFFFFF) von einem System.Windows.Media.Color-Objekt abgerufen werden?
UPDATE: Ich wurde von der Dokumentation auf MSDN irregeführt. Wie @Kris unten bemerkt, ist die Dokumentation für die Methode ToString()
falsch. Obwohl es besagt, dass ToString() "eine Zeichenfolgenrepräsentation der Farbe mithilfe der ScRGB-Kanäle erstellt", gibt es tatsächlich eine Zeichenfolge im ARGB-Hexadezimalformat zurück, wenn die Farbe mit der Methode FromARGB()
erstellt wurde. Es ist eine undokumentierte Funktion, nehme ich an.
Siehe http://msdn.microsoft.com/en-us/library/ms606572.aspx
Sie meinen, dass, wenn ich das Color-Objekt mit FromArgb erstellt, ToString die ARGB-Hex-Zeichenfolge anstelle des ScRgb-Werts zurückgibt? Das widerspricht dem, was es in der MSDN-Dokumentation sagt: http://msdn.microsoft.com/en-us/library/ms606572.aspx. – dthrasher
Ich hatte das in der Dokumentation nicht bemerkt, aber es erzeugt ein Hex-Format, wenn diese Methoden verwendet werden. Beim Suchen im Reflektor wird ein Flag gesetzt, das in der ToString-Implementierung verwendet wird. – Kris
Yup. ToString() gibt mir das gewünschte Format. Sieht aus wie die MSDN-Dokumentation unvollständig ist. – dthrasher