Я делаю приборную панель с помощью кнопок. Исходя из значения какого-либо объекта, я изменяю background
кнопки. когда пользователь наводит или нажимает кнопку, я хочу изменить цвет фона, чтобы указать его нажатие. У меня есть следующий код:Изменение фона кнопок при наведении и нажмите
<Button Height="100" Width="230" Command="{Binding Path=SetSelectedCollection}" CommandParameter="option1" >
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Item.IsOk}" Value="True">
<Setter Property="Background" Value="#8FCE5D"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Item.HasWarnings}" Value="True">
<Setter Property="Background" Value="#FFBE39"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Item.HasErrors}" Value="True">
<Setter Property="Background" Value="#C01318"/>
</DataTrigger>
</Style.Triggers>
<Setter Property="FontSize" Value="15" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#E59400" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Cursor" Value="Hand" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="OrangeRed" />
<Setter Property="Foreground" Value="White" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
Так первая часть все работает отлично, я получаю правильные кнопки цвета на основе статуса элемента им связывания слишком, однако, когда я мыши над или выбрать его цвет делает не изменить. Цвет переднего плана меняется, а курсор меняется, но цвет фона - нет. Я не понимаю, почему нет. Как я могу достичь этого?
Моя думаю, что это использует фон, который вы указали, на основе того, есть ли предупреждения, ошибки и т. д. вместо фона, указанного для свойств MouseOver или IsPressed. Почему бы вам не изменить что-то другое, кроме фона? Похоже, вы пытаетесь отобразить много другой информации, просто используя цвет фона. – CrumblyRock
Я также попытался добавить границу, на мышь и нажал, и никакого эффекта тоже. Есть ли другой подход, который я должен принять? – user1336827