Frage

Gibt es eine Möglichkeit zum Angeben? CMYK Farben direkt in einem XAML -Dokument?

Wenn Sie sie mit # Charakter vorfixieren, werden RGB -Farben erzeugt, aber wie kann man eine CMYK -Farbe angeben?

Einige Notizen:

  1. Die Frage ist Nicht um konvertieren Von CMYK bis RGB, aber real CMYK zu verwenden
  2. Der Zweck ist, generiert zuzulassen XPS Dokumente (unter Verwendung von System.windows.xps.packaging) sehen die Farbe als CMYK und generieren Farbcodes als "contextcolor /wopcmykprofile.icc a, b, c, d, e" nicht als "#ARGRGGBB"

Ich habe versucht, CMYK -Farben mit ColorContext ohne Erfolg zu definieren.

War es hilfreich?

Lösung

Wieder ok! Es stellte sich heraus, dass es viel einfacher war als ich: CMYK ist in XAML direkt verwendbar:

<Grid Background="ContextColor file://C:/WINDOWS/system32/spool/drivers/color/EuroscaleCoated.icc 1.0,0.0,0.0,1.0,1.0">

Andere Tipps

OK! Ich fand die Antwort:

Die Art und Weise, wie WPF Farbmodelle verwendet System.Windows.Media.Colorstatischer Konstruktor FromValues() und Einführung eines Farbprofils:

Der folgende Code zum Beispiel:

var c = Color.FromValues(
               new float[] {1.0f,0.0f,0.0f,0.0f } , 
               new Uri("file://C:/ICCProfile.icc",  UriKind.Absolute));

schafft eine 100% Cyan -Farbe.

Profile können heruntergeladen werden http://www.eci.org/doku.php?id=en:Start

Ich habe diese Lösung mit XPSDocumentWriter getestet und bestätige, dass sie den richtigen CMYK -Farbcode erstellt.

Für XAML ist es nur die Frage, eine zu bauen IValueConverter Das wandelt so etwas wie "~ C, m, y, k" (als #rrggbbbbbbbb) in a um real CMYK -Farbe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top