У меня есть панель стека, которая содержит три кнопки. Когда нажимается кнопка, я хочу, чтобы фон оставался постоянно измененным, однако, похоже, он не работает.
Я попытался установить цвет фона программно, как я написал ниже, но, похоже, он не работает. Когда я устанавливаю цвет переднего плана программно, это работает, меняя цвета в соответствии с инструкциями. Я думаю, поскольку я использую шаблон для кнопок в XAML, где я назначаю цвет фона, он имеет приоритет над программным изменением.
Попытка изменить фон:
AColour.Background = Brushes.Black;
BColour.Background = Brushes.Red;
CColour.Background = Brushes.Black;
Попытка изменить передний план (который работает):
AColour.Foreground = Brushes.Black;
BColour.Foreground = Brushes.Red;
CColour.Foreground = Brushes.Black;
XAML (шаблон кнопки):
<Window.Resources>
<ControlTemplate x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Border Name="body" Background="#AEEEEE" BorderThickness="0" BorderBrush="DimGray" Padding="2">
<ContentPresenter HorizontalAlignment="Left" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="body" Value="#12CCD3"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" TargetName="body" Value="#009DA2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
Объявление кнопки XAML (одинаково для всех 3 кнопок, кроме имени):
<Button Cursor="Hand" x:Name="AColour" Height="40" Template="{StaticResource ButtonStyle}" Width ="100" Click="A_Click">
Есть ли способ (если шаблон имеет приоритет) перезаписать шаблон и программно изменить фон?