8

有没有办法直接在 XAML 文档中指定CMYK颜色?

用# 字符作为前缀将创建 RGB 颜色,但如何指定 CMYK 颜色?

一些注意事项:

  1. 问题不在于从 CMYK 转换为 RGB,而是要使用真正的 CMYK
  2. 目的是允许生成的XPS文档(例如使用 System.Windows.Xps.Packaging)将颜色视为 CMYK,并将颜色代码生成为“ContextColor /swopcmykprofile.icc a,b,c,d,e”而不是“# aarrggbb"

我试图通过使用 ColorContext 来定义 CMYK 颜色,但没有成功。

4

2 回答 2

7

又好了!事实证明它比我更容易:CMYK 可以直接在 XAML 中使用:

<Grid Background="ContextColor file://C:/WINDOWS/system32/spool/drivers/color/EuroscaleCoated.icc 1.0,0.0,0.0,1.0,1.0">
于 2011-01-31T15:15:35.163 回答
6

好的!我找到了答案:

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”(如 RGB 的#RRGGBB)之类的东西转换为真正的CMYK 颜色的问题。

于 2011-01-31T13:58:57.193 回答