wpf中,借助触发器实现以下需求,并给出代码。需求如下:a,b,c三个button按钮,点击其中a按钮,a变色,b,c不变色。之后点击b按钮,a按钮颜色还原,c按钮不变色
时间: 2024-04-29 07:24:59 浏览: 8
以下是代码实现:
```xaml
<StackPanel>
<Button x:Name="btnA" Content="A" Width="100" Height="50">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="Green"/>
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
<DataTrigger Binding="{Binding ElementName=btnB, Path=IsPressed}" Value="True">
<Setter Property="Background" Value="Green"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Button x:Name="btnB" Content="B" Width="100" Height="50">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="Green"/>
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Button x:Name="btnC" Content="C" Width="100" Height="50">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="Green"/>
</Style>
</Button.Style>
</Button>
</StackPanel>
```
该代码使用了 WPF 中的触发器,当按钮 A 被点击时,通过 DataTrigger 绑定了按钮 B 的 IsPressed 属性,当按钮 B 被点击后,通过触发器将按钮 A 的背景恢复为绿色。按钮 C 则可直接设置背景色为绿色。