在数字成像中,当覆盖两个可视层时,有多种方法可以计算出当较低层的光线以某种方式穿过障碍层时所产生的图像。这样可以提供自然现象所不会产生的效果,例如增加颜色。
这是Photoshop中提供的图层混合模式菜单的示例:
.net - WPF-控制半透明层之间的混合-LMLPHP
(来源:psdtop.com)
如果您不熟悉此主题,建议访问Understanding Blending Modes文章。它很好地展示了每个选项针对两层的结果。
据我所知,WPF仅提供“正常”选项。也就是说,以下UI仅将颜色混合为有色凝胶一样:

<Grid>
  <Ellipse Width="40" Height="40" Fill="#80FF0000" Margin="16,0,0,0" />
  <Ellipse Width="40" Height="40" Fill="#8000FF00" Margin="32,32,0,0" />
  <Ellipse Width="40" Height="40" Fill="#800000FF" Margin="0,32,0,0" />
</Grid>
看起来像这样:
.net - WPF-控制半透明层之间的混合-LMLPHP

我想知道是否有任何方法可以控制图层的混合方式。

最佳答案

您正在寻找的被称为混合模式。
这是如何使用像素着色器实现的简单example。您将为此使用multi-input shader effect
这是一个很好的complete tutorial,它将引导您使用多输入着色器效果创建可重用的混合模式库。
自早期的CTP以来,混合模式作为WPF API的固有部分就经常被requested使用,但从未将其纳入产品中。

关于.net - WPF-控制半透明层之间的混合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1656764/

10-13 06:37