1

我有一个 DrawingImage,它是由宏伟的Svg2Xaml 插件从 SVG 转换而来的。通过这种方式,我可以让用户轻松定义我的应用程序中某些元素的视觉效果。

在某些用例中,我想为给定的 DrawingImage 重新着色。最简单的情况是使其成为灰度。

有没有一种方法可以递归地遍历所有元素,获取它们的颜色并将其切换到它们的灰度对应项?或者 - 例如 - 在整个图像上使用“过滤器”之类的东西?

我在 WPF 方面并没有真正的经验,但如果能做到这一点,我的工作会容易得多。

我最好的选择是什么?

此外,DrawingImage 使用矢量图形也很重要,所以我不想对图像进行像素化。

4

2 回答 2

1

将我的评论转换为答案:

对于制作视觉灰度的具体案例,你可能想看看Shader Effect Library

于 2012-11-24T14:26:11.860 回答
1

你可能需要查看 WPF资源字典,并使用DynamicResource

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Color x:Key="FrontColor">White</Color>

    <SolidColorBrush x:Key="Foreground" Color="{DynamicResource FrontColor}" />
</ResourceDictionary>
于 2012-11-23T18:10:46.997 回答