Quería agrupar varios botones de alternancia y hacer que se comportaran como botones de opción. Así que lo que hice fue agregar botones de radio para mi xaml y creó el siguiente estilo:Botón de alternar como botón de opción estilo
<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>
Ahora los botones de radio se ven como botones de conmutación, y se aplican las propiedades de la fuente y el primer plano del estilo, pero si hago clic en uno de los botones de alternar, el fondo no cambia a rojo. Si cambio el primer plano basado en IsChecked, funciona, pero no puedo cambiar el fondo cuando IsChecked es verdadero.
¿Alguna idea?
ACTUALIZACIÓN:
Parece que el estilo por defecto ToggleButton no utiliza la propiedad de fondo. Estoy usando el siguiente código ahora para resolver mi problema. Si alguien ve algo mal con el siguiente, házmelo saber.
<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 establece explícitamente el 'Background' en' Red' en su 'RadioButton', ¿realmente funciona? –
Sí. Configuración de fondo = "Rojo" en el botón de radio mismo muestra un botón de alternar con un fondo rojo. – Flack