一个WPF中使用XAML设置按钮的点击效果的问题

_秦同学_ 2015-06-19 09:49:58
想在XAML中实现一个按钮点击变色的简单效果,求大神指点!

有4个按钮,默认颜色比如是黄色,点击后的颜色是红色。
想让其中一个点击变色,其它为默认颜色,再换成其它按钮点击时,当前被点击的按钮变色,其余按钮恢复成默认颜色。

使用触发器实现的话,使用IsFocused属性,只能在按钮获得焦点的时候变色,当失去焦点的时候又会恢复成原状。想使用后台代码直接改颜色,但是改完颜色触发器又不工作了........折腾好几天了,求个解决办法
...全文
425 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Forty2 2015-06-19
  • 打赏
  • 举报
回复
关键在于,控件需要和它的同事进行协调(按了一个,其他要弹起)。 一种做法是用ListBox等来组织ToggleButton,因为ListBox有选择项的支持。 一种做法是用RadioButton来做,RadioButton天生有组别的概念,一组RadioButton只有一个是IsChecked。 下例用RadioButton做,同时把它的Style改为ToggleButton: <WrapPanel> <WrapPanel.Resources> <Style TargetType="RadioButton" BasedOn="{StaticResource {x:Type ToggleButton}}" > <Setter Property="Margin" Value="10" /> <Style.Triggers> <Trigger Property="IsChecked" Value="true"> <Setter Property="Foreground" Value="Red" /> </Trigger> </Style.Triggers> </Style> </WrapPanel.Resources> <RadioButton GroupName="A">hello</RadioButton> <RadioButton GroupName="A">world</RadioButton> <RadioButton GroupName="A">nihao</RadioButton> </WrapPanel>
鏡椛氹鈅 2015-06-19
  • 打赏
  • 举报
回复
用IsMouseOver和IsPressed试试
林夕合鸟 2015-06-19
  • 打赏
  • 举报
回复
ToggleButton应该就可以了吧。

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧