我在字典中有多个DrawingImages。我也有这些影像的IconAccentBrush。我想要动态变更绘图影像中的色彩。我有变更IconAccentBrush的滑杆。
我想用一个键引用我的DrawingImage。
如果我不引用DrawingGroup,它的颜色将改变,但如果我从其他项目引用它,它不会改变。
你能帮忙吗?
谢谢你,奥利维尔
图标会出现,但颜色不会改变的示例:
<Application
x:Class="App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
....
<ResourceDictionary Source="pack://application:,,,/ResourcesWpf;component/Dictionaries/ImageDictionary.xaml" />
....
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
----------------------------------------------------------
//this is ImageDictionary.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DrawingGroup x:Key="PushPinActiveDrawingGroup" ClipGeometry="M-19,1 V512.9995 H492 V-19 H1 Z">
<DrawingGroup.Transform>
<TranslateTransform X="19" Y="-0.00097703933715820313" />
</DrawingGroup.Transform>
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry1}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry2}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry3}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry4}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry5}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry6}" />
</DrawingGroup>
</ResourceDictionary>
----------------------------------------------------------
<ToggleButton Margin="{StaticResource MainThickness}" IsChecked="{Binding IsPinned}">
<Image>
<Image.Source>
<DrawingImage Drawing="{DynamicResource PushPinActiveDrawingGroup}"/>
</Image.Source>
</Image>
</ToggleButton>
图标会出现,但颜色会改变的示例:
<ToggleButton Margin="{StaticResource MainThickness}" IsChecked="{Binding IsPinned}">
<Image>
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M-19,1 V512.9995 H492 V-19 H1 Z">
<DrawingGroup.Transform>
<TranslateTransform X="19" Y="-0.00097703933715820313" />
</DrawingGroup.Transform>
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry1}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry2}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry3}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry4}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry5}" />
<GeometryDrawing Brush="{DynamicResource IconAccentBrush}" Geometry="{StaticResource ApplyColorGeometry6}" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</ToggleButton>
1条答案
按热度按时间lg40wkob1#
我设法通过更改图像样式中的源来更改图标的颜色。
解决方案如下: