C# WPF编程-ToggleButton
ToggleButton
在WPF中,ToggleButton是一个非常有用的控件,它允许用户在两种状态之间切换:选中(Checked)和未选中(Unchecked)。此外,还有一个中间状态叫做“不确定”(Indeterminate),但需注意的是,并不是所有的使用场景都需要或支持这个状态。下面将介绍如何使用ToggleButton,包括基本用法、样式定制以及事件处理。
<Window.Resources>
<!-- 自定义ToggleButton样式 -->
<Style TargetType="ToggleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="10">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="LightGreen"/>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Background" Value="LightGray"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel Orientation="Horizontal">
<ToggleButton Content="切换按钮" HorizontalAlignment="Center" VerticalAlignment="Center"
Width="100" Height="50" IsChecked="False" Checked="ToggleButton_Changed" Unchecked="ToggleButton_Changed" Indeterminate="ToggleButton_Changed"/>
<Label x:Name="labelToggleButtonState"/>
</StackPanel>
private void ToggleButton_Changed(object sender, RoutedEventArgs e)
{
ToggleButton? toggleButton = sender as ToggleButton;
if (toggleButton != null)
{
if (toggleButton.IsChecked == true)
{
labelToggleButtonState.Content = "选中状态";
}
else
{
labelToggleButtonState.Content = "未选中状态";
}
}
}