我正在尝试创建一组具有关闭或开启状态的按钮,这是一个没有检查的复选框。理想情况下,我希望颜色更改为代表两个不同的状态(红色),绿色(开启)。我尝试过设置一个控件模板,但这只会改变选区的颜色,一旦鼠标离开按钮的附近,就会恢复原来的颜色。
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" TargetName="Background" Value="Green"/>
</Trigger>
</ControlTemplate.Triggers>
答案 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>
答案 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可能是您想要使用的。