ToggleButton触发器IsChecked不会更改背景

时间:2016-04-05 16:27:59

标签: c# .net wpf

我有一个红色背景的ToggleButton。选中切换按钮时,我需要设置绿色背景。

我试过这个:

<ToggleButton Content="Test 001" Name="btn03" Height="20">
    <ToggleButton.Style>
        <Style TargetType="ToggleButton">
            <Setter Property="Background" Value="#ff0000" />
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Background" Value="#00ff00" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>

但是换了绿色我得到浅蓝色(我认为是我的默认颜色) 系统)。

我做错了什么以及如何解决?

1 个答案:

答案 0 :(得分:2)

WPF 4.0不允许这样做。看here寻找不同的方法:

<Grid>
    <Grid.Resources>
        <Style x:Key="ToggleButtonStyle" TargetType="{x:Type ToggleButton}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToggleButton}">
                        <Border HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="border" Background="Red">
                            <ContentPresenter/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="true">
                                <Setter Property="Background" TargetName="border" Value="Green"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Grid.Resources>

    <ToggleButton Content="ToggleButton" Style="{StaticResource ToggleButtonStyle}"/>
</Grid>