У меня есть ControlTemplate, который использует один и тот же цвет в нескольких элементах. Для определенных триггеров (например, OnMouseOver) я хотел бы изменить этот цвет. Насколько я вижу, мне нужно определить сеттер для каждого элемента, чтобы изменить его цвет. Есть ли способ сослаться на общий ресурс в шаблоне, к которому могут получить доступ все содержащиеся элементы и который можно изменить с помощью триггера, чтобы мне не приходилось обращаться к каждому элементу?
Вот (придуманный) пример:
<ControlTemplate x:Key="myTemplate" TargetType="{x:Type Button}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Ellipse Fill="red" Grid.Column="0"/>
<Ellipse Fill="red" Grid.Column="1"/>
<ContentPresenter Grid.ColumnSpan="2" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
Когда элемент управления отключен, я хочу, чтобы эллипсы были серыми, не устанавливая их оба явно, например. Я не хочу писать
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="_ellipse1" Property="Fill" Value="Grey"/>
<Setter TargetName="_ellipse2" Property="Fill" Value="Grey"/>
</Trigger>
но установите цвет обоих эллипсов с помощью одного сеттера.