创建一个按钮,当按下另一个按钮时,其背景会改变
本文关键字:按钮 另一个 改变 背景 创建 一个 | 更新日期: 2023-09-27 18:10:22
我有一个带有一些按钮的换行面板。当按下按钮时,背景变为红色,否则背景是透明的。如果我按下另一个按钮,上一个按钮的背景应该变成透明,最近按下的按钮的背景应该变成红色。我怎样才能做到这一点??
我相信有很多方法可以做到这一点!一种方法是使用DataTrigger
。
Execute
函数在视图模型中设置一个变量:
<Button Command="{Binding SetButton1Command}"/>
<Button Command="{Binding SetButton2Command}"/>
这些函数可以做一些简单的事情,比如切换bool值。我假设您这样做,因为只有两个按钮。更多的按钮将需要一个enum或其他东西(或者只是使用RadioButton
,这整个事情变得容易得多)。
设置了bool
属性后,我将使用DataTrigger
设置背景:
<Button Command="{Binding SetButton1Command}"/>
<Button.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=FlagProperty}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
<Button.Style>
</Button>
如果你使用RadioButton
(我推荐的东西),你只是触发"IsChecked"被改变(与RelativeSource或ElementName绑定)。
这适用于winforms,但也适用于webforms。
private void button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
if (btn.Name == "button1")
{
button1.BackColor = Color.Red;
button2.BackColor = Color.Transparent;
}
else
{
button1.BackColor = Color.Transparent;
button2.BackColor = Color.Red;
}
}
在一个表单上放置两个按钮,将它们连接到同一个事件。