Я хотел сгруппировать несколько кнопок переключения и заставить их вести себя как переключатели. Поэтому я добавил радио-кнопки в свой xaml и создал следующий стиль:
<Style BasedOn="{StaticResource {x:Type ToggleButton}}" TargetType="RadioButton">
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Foreground" Value="White"/>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
Теперь переключатели выглядят как кнопки переключения, и применяются свойства шрифта и переднего плана стиля, но если я нажму одну из кнопок переключения, фон не изменится на красный. Если я изменяю передний план на основе IsChecked, он работает, но я не могу заставить фон измениться, когда IsChecked имеет значение true.
Есть идеи?
UPDATE:
Похоже, что стиль ToggleButton по умолчанию не использует свойство Background. Я использую код ниже, чтобы решить мою проблему. Если кто-то видит что-то не так с приведенным ниже, пожалуйста, дайте мне знать.
<DataTemplate x:Key="RedBackground">
<Grid Background="Red">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" Text="{Binding}"/>
</Grid>
</DataTemplate>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="ContentTemplate" Value="{StaticResource RedBackground}"/>
</Trigger>
</Style.Triggers>
</Style>