WPF 多按钮如何实现按钮状态切换

namespace WPFTips.ButtonStatus
{
public partial class StatusWindow : Window
{
public StatusWindow()
{
InitializeComponent();
}
private void Btn_Status_Click(object sender, RoutedEventArgs e)
{
System.Windows.Controls.Button btn = sender as System.Windows.Controls.Button;
if (btn != null)
{
bool tag = false;
Type type = btn.Tag.GetType();
if (type.FullName == "System.Boolean")
{
tag = (bool)btn.Tag;
}
if (type.FullName == "System.String")
{
tag = bool.Parse((string)btn.Tag);
}
if (tag)
{
switch (btn.Name)
{
case "Btn_Status1": break;
case "Btn_Status2": break;
case "Btn_Status3": break;
case "Btn_Status4": break;
case "Btn_Status5": break;
default:
break;
}
}
btn.Tag = !tag;
btn.Content = (bool)btn.Tag ? "切换前" : "切换后";
if (btn.Content?.ToString() == "切换前")
{
MessageBox.Show("切换前状态:"+ btn.Content);
}else if (btn.Content?.ToString() == "切换后")
{
MessageBox.Show("切换后状态:" + btn.Content);
}
}
}
}
}
<Window x:Class="WPFTips.ButtonStatus.StatusWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPFTips.ButtonStatus"
mc:Ignorable="d"
Title="WPF 多按钮如何实现按钮状态切换" Height="450" Width="800">
<Grid Margin="24,24,24,0">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left">
<Button x:Name="Btn_Status1" Click="Btn_Status_Click" Width="120" Height="35" Content="切换前" Tag="True" Margin="0,10,0,0"/>
<Button x:Name="Btn_Status2" Click="Btn_Status_Click" Width="120" Height="35" Content="切换前" Tag="True" Margin="0,10,0,0"/>
<Button x:Name="Btn_Status3" Click="Btn_Status_Click" Width="120" Height="35" Content="切换前" Tag="True" Margin="0,10,0,0"/>
<Button x:Name="Btn_Status4" Click="Btn_Status_Click" Width="120" Height="35" Content="切换前" Tag="True" Margin="0,10,0,0"/>
<Button x:Name="Btn_Status5" Click="Btn_Status_Click" Width="120" Height="35" Content="切换前" Tag="True" Margin="0,10,0,0"/>
</StackPanel>
</Grid>
</Window>