Вопрос

Есть ли способ указать CMYK Цвета непосредственно в документе XAML?

Префикс их символом # создаст цвета RGB, но как указать цвет CMYK?

Некоторые примечания:

  1. Вопрос в том Не о преобразовании от CMYK до RGB, но для использования реального CMYK
  2. Цель состоит в том, чтобы разрешить сгенерировать XPS Документы (с использованием system.windows.xps.packaging, например) см. Цвет как cmyk и генерируют цветные коды как «contextcolor /swopcmykprofile.icc a, b, c, d, e» не как «#aarrggbb»

Я пытался определить цвета CMYK, используя ColorContext без какого -либо успеха.

Это было полезно?

Решение

ОК, ОК! Это оказалось намного проще, чем я, хотя: CMYK доступен непосредственно в XAML:

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

Другие советы

ХОРОШО! Я нашел ответ:

То, как WPF использует цветные модели, находится System.Windows.Media.ColorСтатический конструктор FromValues() и представление цветового профиля:

Например, следующий код:

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

Создает 100% голубого цвета.

Профили можно скачать с http://www.eci.org/doku.php?id=en:start

Я проверил это решение с XPSDocumentWriter и подтверждаю, что оно создает правильный цветовой код CMYK.

Для XAML это просто вопрос строительства IValueConverter Это преобразует что -то вроде "~ c, m, y, k" (как #rrggbb для RGB) в настоящий CMYK Color.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top