Using CMYK colours in WPF/XAML

后端 未结 2 1049
既然无缘
既然无缘 2020-12-16 22:11

Is there any way to specify CMYK colours directly in a XAML document?

prefixing them with # character will create RGB colours, but how to specify a

相关标签:
2条回答
  • 2020-12-16 22:58

    OK! I found the answer:

    The way that WPF uses colour models is by System.Windows.Media.Color's static constructor FromValues() and introducing a colour profile:

    The following code, for example:

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

    creates a 100% Cyan colour.

    Profiles can be downloaded from http://www.eci.org/doku.php?id=en:start

    I tested this solution with XpsDocumentWriter and I confirm that it creates the correct CMYK colour code.

    For XAML it is just the matter of building an IValueConverter that converts something like "~C,M,Y,K" (as #RRGGBB for RGB) to a real CMYK colour.

    0 讨论(0)
  • 2020-12-16 22:59

    OK again! It turned out to be much more easier than what I though: CMYK is directly usable in XAML:

    <Grid Background="ContextColor file://C:/WINDOWS/system32/spool/drivers/color/EuroscaleCoated.icc 1.0,0.0,0.0,1.0,1.0">
    
    0 讨论(0)
提交回复
热议问题