Вы можете ссылаться на свои кисти как DynamicResource
в базе Style
и добавлять новые кисти в производную Style
Базовый стиль использует DynamicResource
для backgroundBrush и нажатыхBackgroundBrush
<Style TargetType="Button"
x:Key="ButtonBaseStyle">
<Style.Resources>
<LinearGradientBrush x:Key="backgroundBrush" StartPoint="0.5, 0" EndPoint="0.5, 1">
<GradientStop Color="Red" Offset="0"/>
<GradientStop Color="Green" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="pressedBackgroundBrush" StartPoint="0.5, 0" EndPoint="0.5, 1">
<GradientStop Color="Green" Offset="0"/>
<GradientStop Color="Red" Offset="1"/>
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Background" Value="{DynamicResource backgroundBrush}"/>
<!-- Additional Setters.. -->
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background"
Value="{DynamicResource pressedBackgroundBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
Стиль на основе Определяет новые кисти, но использует те же Style
<Style TargetType="Button"
BasedOn="{StaticResource ButtonBaseStyle}"
x:Key="AnotherButtonStyle">
<Style.Resources>
<LinearGradientBrush x:Key="backgroundBrush" StartPoint="0.5, 0" EndPoint="0.5, 1">
<GradientStop Color="Orange" Offset="0"/>
<GradientStop Color="Blue" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="pressedBackgroundBrush" StartPoint="0.5, 0" EndPoint="0.5, 1">
<GradientStop Color="Blue" Offset="0"/>
<GradientStop Color="Orange" Offset="1"/>
</LinearGradientBrush>
</Style.Resources>
</Style>