问题描述
想在XAML中实现一个按钮点击变色的简单效果,求大神指点!有4个按钮,默认颜色比如是黄色,点击后的颜色是红色。想让其中一个点击变色,其它为默认颜色,再换成其它按钮点击时,当前被点击的按钮变色,其余按钮恢复成默认颜色。使用触发器实现的话,使用IsFocused属性,只能在按钮获得焦点的时候变色,当失去焦点的时候又会恢复成原状。想使用后台代码直接改颜色,但是改完颜色触发器又不工作了........折腾好几天了,求个解决办法
解决方案
解决方案二:
用IsMouseOver和IsPressed试试
解决方案三:
关键在于,控件需要和它的同事进行协调(按了一个,其他要弹起)。一种做法是用ListBox等来组织ToggleButton,因为ListBox有选择项的支持。一种做法是用RadioButton来做,RadioButton天生有组别的概念,一组RadioButton只有一个是IsChecked。下例用RadioButton做,同时把它的Style改为ToggleButton:<WrapPanel><WrapPanel.Resources><StyleTargetType="RadioButton"BasedOn="{StaticResource{x:TypeToggleButton}}"><SetterProperty="Margin"Value="10"/><Style.Triggers><TriggerProperty="IsChecked"Value="true"><SetterProperty="Foreground"Value="Red"/></Trigger></Style.Triggers></Style></WrapPanel.Resources><RadioButtonGroupName="A">hello</RadioButton><RadioButtonGroupName="A">world</RadioButton><RadioButtonGroupName="A">nihao</RadioButton></WrapPanel>
解决方案四:
ToggleButton应该就可以了吧。