我想将一些切换按钮分组并使它们的行为像单选按钮。所以我在我的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时,我无法使背景发生变化。
有什么想法吗?
更新:
似乎默认的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>
RadioButton
上显式设置Background
为Red
,它会真正起作用吗? - Kent Boogaart