Я пытаюсь найти решение для повторного использования кода в XAML для в WPF: у меня есть 3 кнопки, которые имеют очень похожие стили, с той лишь разницей, что BorderThickness.Все они имеют набор триггеров стилей, который, если пользователь наводит на них мышь, BorderThickness устанавливается на 1.
<Button Width="50" Height="50" BorderBrush="#66CCFF" >
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="BorderThickness" Value="0,0,0,1" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="1"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
<Image Margin="12" Source="picture1.png"/>
</Button>
<Button Width="50" Height="50" BorderBrush="#66CCFF">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="BorderThickness" Value="0,1,0,1" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="1"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
<Image Margin="12" Source="picture2.png"/>
</Button>
<Button Width="50" Height="50"BorderBrush="#66CCFF">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="BorderThickness" Value="1,0,1,1" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="1"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
<Image Margin="12" Source="picture3.png"/>
</Button>
Поскольку стили практически идентичны, кроме BorderThickness, который применяется, когда IsMouseOverfalse Я хотел бы удалить дубликаты кода и иметь какой-то стиль в ResourceDictionary, где я могу указать начальный BorderThickness в качестве параметра (или что-то в том же духе), а остальное - то же самое.
Я пытался переместить часть BorderThickness="p,q,r,s"
в тег <Button ...>
, но при наведении указателя мыши стиль не применяется (я предполагаю, что между ними есть иерархия).