У меня есть кнопка WPF
<Button Style="{StaticResource BrandedButton}">Continue</Button>
В настоящее время она выглядит следующим образом:
<Style x:Key="BrandedButton" TargetType="{x:Type Button}">
<Setter Property="Background" Value="{StaticResource LowlightBrush}"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontFamily" Value="Open Sans Light"/>
<Setter Property="FontSize" Value="35"/>
<Setter Property="Padding" Value="50,10"/>
</Style>
Теперь я Я хочу управлять цветом (и ничем иным) для hover / press / et c, поэтому я добавил еще один установщик
<Setter Property="Template" Value="{StaticResource BrandedButtonTemplate}"/>
И он указывает на этот ControlTemplate. Я видел только примеры, которые изменяют структуру кнопки, например, добавляя границу:
<ControlTemplate x:Key="BrandedButtonTemplate" TargetType="Button">
<Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="0">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="{StaticResource HighlightBrush}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" Value="{StaticResource HighlightBrush}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" Value="{StaticResource HighlightBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
Но это убивает макет, который был применен ранее:
И наоборот, если я включу только ContentPresenter
и пропущу обтекание Border
, кнопка полностью исчезнет.
Как изменить режим наведения и нажимать цвета без изменения что-нибудь еще? Какая самая маленькая / самая легкая реализация для того, что должно быть тривиальной задачей?