XAML Цвет значка
У меня есть ResourceDicionaryIcon, где я храню значки, такие как DrawingBrush. И я хочу изменить цвет кисти с {DynamicResource GreyBrush} на что-то, что позволит мне выбрать цвет в кнопке шаблона элемента управления (тот же цвет, что и текст).
<DrawingBrush x:Key="icoEdit" Stretch="Uniform">
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="{DynamicResource GreyBrush}" Geometry="F1 M 4.95279,30.227L 11.737,37.0113L 37.5279,11.2205L 30.7437,4.43622L 4.95279,30.227 Z "/>
<GeometryDrawing Brush="{DynamicResource GreyBrush}" Geometry="F1 M 31.7877,3.39215L 38.572,10.1764L 41.9641,6.78424L 35.1798,0L 31.7877,3.39215 Z "/>
<GeometryDrawing Brush="{DynamicResource GreyBrush}" Geometry="F1 M 10.6276,38.096L 0,41.9641L 3.86807,31.3365L 10.6276,38.096 Z "/>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
На самом деле я отображаю значок в Canvas как фон. Но это не позволяет мне выбирать цвет. Есть ли лучшее решение, как я могу это сделать?
<Canvas x:Name="canvas" (...) Background="{TemplateBinding Background}" />
РЕДАКТИРОВАТЬ:
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="grid" (...)>
(...)
<TextBlock Text="{TemplateBinding Content}" (...) Foreground="{TemplateBinding Foreground}"/>
<Canvas x:Name="canvas" (...) Background="{TemplateBinding Background}" (...)>
</Canvas>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Button x:Name="Button"
Style="{DynamicResource ButtonStyle}"
Foreground="#FF434341"
Background="{DynamicResource icoEdit}"
Content="BUTTON TEXT" (...)/>
1 ответ
Я думаю, вы должны поставить свой Binding
в обратном направлении, как это:
<GeometryDrawing Brush="{Binding Background, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Canvas}}}" Geometry="F1 M 4.95279,30.227L 11.737,37.0113L 37.5279,11.2205L 30.7437,4.43622L 4.95279,30.227 Z "/>
Здесь я мой обязательный Brush
на верхний / родительский элемент
У меня нет Visual Studio сейчас, чтобы проверить это предложение. Пожалуйста, поправьте меня, если я ошибаюсь