ToggleButton触发器的IsChecked属性未改变背景颜色

3

我有一个背景为红色的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个回答

2

WPF 4.0不允许这样做。在这里查看另一种方法:

<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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接