WPF按钮打开或关闭彩色状态

时间:2010-05-21 14:46:45

标签: c# .net wpf button

我正在尝试创建一组具有关闭或开启状态的按钮,这是一个没有检查的复选框。理想情况下,我希望颜色更改为代表两个不同的状态(红色),绿色(开启)。我尝试过设置一个控件模板,但这只会改变选区的颜色,一旦鼠标离开按钮的附近,就会恢复原来的颜色。

<ControlTemplate.Triggers>
   <Trigger Property="IsPressed" Value="True">
      <Setter Property="Background" TargetName="Background" Value="Green"/>
   </Trigger>
</ControlTemplate.Triggers>

3 个答案:

答案 0 :(得分:6)

首先,您描述的是ToggleButton 其次,使用Style和触发器“IsChecked”

<Style x:Key="MyToggleStyle" TargetType="{x:Type ToggleButton}">
 <Style.Triggers>
   <Trigger Property="IsChecked" Value="True">
     <Setter Property="Background" Value="Green"/>
   </Trigger>
   <Trigger Property="IsChecked" Value="False">
     <Setter Property="Background" Value="Red"/>
   </Trigger>
 </Style.Triggers>
</Style>

here is a solution to a similar problem

答案 1 :(得分:0)

使用类似下面的内容:

<Button>
    ...
    <Button.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding SomeField, Converter={StaticResource yourConverter}}" Value="yourValue">
                    <!-- set what you want here -->
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

答案 2 :(得分:0)

实际上,可以使用CheckBox。请允许我解释一下:

WPF允许您定义控件模板,它基本上就是整个控件本身。您可以创建一个看起来与按钮完全相同的复选框。

然而,正如有人所说,ToggleButton可能是您想要使用的。