L'utilisation de couleurs CMJN dans WPF / XAML
Question
Est-il possible de spécifier CMJN les couleurs directement dans un document XAML?
préfixer avec caractère # va créer des couleurs RVB, mais comment spécifier une couleur CMJN?
Quelques notes:
- La question est pas sur la conversion CMJN en RVB, mais d'utiliser CMJN réel
- Le but est de permettre généré XPS documents (en utilisant System.Windows.Xps.Packaging par exemple) voir la couleur CMYK et générer des codes de couleur comme « ContextColor /swopcmykprofile.icc a, b, c, d, e » pas "#aarrggbb"
J'ai essayé de définir des couleurs CMJN en utilisant ColorContext sans succès.
La solution
OK à nouveau! Il est avéré être beaucoup plus facile que ce que je pensais: CMJN est directement utilisable dans XAML:
<Grid Background="ContextColor file://C:/WINDOWS/system32/spool/drivers/color/EuroscaleCoated.icc 1.0,0.0,0.0,1.0,1.0">
Autres conseils
OK! J'ai trouvé la réponse:
La façon dont WPF utilise des modèles de couleurs est par constructeur statique System.Windows.Media.Color
FromValues()
et l'introduction d'un profil de couleur:
Le code suivant, par exemple:
var c = Color.FromValues(
new float[] {1.0f,0.0f,0.0f,0.0f } ,
new Uri("file://C:/ICCProfile.icc", UriKind.Absolute));
crée 100% couleur cyan.
Les profils peuvent être téléchargés à partir http://www.eci.org/doku .php id = fr: début
Je l'ai testé cette solution avec XpsDocumentWriter et je confirme que cela crée le code couleur CMJN correct.
Pour XAML il est juste la question de la construction d'un IValueConverter
qui convertit quelque chose comme "~ C, M, Y, K" (comme #RRVVBB pour RGB) à un réel couleur CMJN.