У нас есть набор SVG, хранящихся в словаре ресурсов.
Пример:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DrawingImage x:Key="Bell">
<DrawingImage.Drawing>
<DrawingGroup Opacity="1">
<DrawingGroup.Children>
<DrawingGroup Opacity="1">
<DrawingGroup.Children>
<DrawingGroup Opacity="1">
<DrawingGroup.Children>
<GeometryDrawing Brush="#FF000000" Pen="{x:Null}">
<GeometryDrawing.Geometry>
<PathGeometry FillRule="Nonzero" Figures="........." />
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</ResourceDictionary>
Если вы заметили, для кисти GeometryDrawing задан цвет #ff000000 (черный). Проблема, с которой мы сталкиваемся, заключается в том, чтобы позволить представлению отображать этот SVG и назначать цвет во время выполнения (через привязку).
Наше окно (представление) имеет словарь ресурсов со значками внутри Window.Resources.
Мы ищем такое решение:
<Image Source="{StaticResource Bell}" Fill="#FF884422"/>