我有一个DrawingImage,我已经通过宏观Svg2Xaml plugin从SVG转换而来。通过这种方式,我可以让用户轻松定义应用程序中某些元素的视觉效果。
在某些用例中,我想重新着色给定的DrawingImage。最简单的情况是使其成为灰度。
有没有办法递归遍历所有元素,获取颜色并将其切换到灰度对应物?或者 - 例如 - 在整个图像上使用类似“过滤器”的东西?
我在WPF方面并不是很有经验,但如果能够做到这一点,那将使我的工作变得更加轻松。
什么是我最好的选择?
同样重要的是DrawingImage使用矢量图形,所以我不想将图像像素化。
答案 0 :(得分: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>
答案 1 :(得分:1)
将我的评论转换为答案:
对于制作可视灰度的具体情况,您可能需要查看Shader Effect Library