У меня есть 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>
но установите цвет обоих эллипсов с помощью one setter.