Je voulais regrouper un certain nombre de boutons à bascule et les faire se comporter comme des boutons radio. Donc ce que je faisais était d'ajouter des boutons radio à mon XAML et a créé le style suivant:Basculer le bouton comme style de bouton radio
<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>
maintenant les boutons radio ressemblent à des boutons à bascule, et les propriétés de police et de premier plan du style sont appliqués, mais si je clique sur l'un des boutons à bascule, l'arrière-plan n'est pas changé en rouge. Si je change le premier plan basé sur IsChecked, cela fonctionne, mais je ne peux pas obtenir l'arrière-plan pour changer quand IsChecked est vrai.
Des idées?
MISE À JOUR:
Il semble que le style par défaut ToggleButton n'utilise pas la propriété d'arrière-plan. J'utilise maintenant le code ci-dessous pour résoudre mon problème. Si quelqu'un voit quelque chose de mal avec ce qui suit, s'il vous plaît faites le moi savoir.
<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>
Si vous définissez explicitement 'Background' sur' Red' sur votre 'RadioButton', cela fonctionne-t-il réellement? –
Oui. Setting Background = "Red" sur le bouton radio lui-même affiche un bouton à bascule avec un fond rouge. – Flack