通过


CheckBox

浏览示例。 浏览示例

.NET 多平台应用 UI(.NET MAUI) CheckBox 是一种按钮类型,可以选中或为空。 选中复选框后,它被视为处于打开状态。 当复选框为空时,它被视为关闭。

CheckBox 定义以下属性:

  • IsChecked,类型为 bool,用于指示 CheckBox 是否被选中。 此属性的默认绑定模式为 TwoWay.
  • Color 的类型为 Color,表示 CheckBox 的颜色。

这些属性由 BindableProperty 对象提供支持,这意味着这些属性可以设置样式,并成为数据绑定的目标。

CheckBox 定义了一个事件,当用户操作或应用程序设置导致 IsChecked 属性更改时,该事件被引发。 事件附带的对象具有一个名为的属性,其类型为。 引发事件时,属性的值 Value 将设置为该属性的新值 IsChecked

创建 CheckBox

以下示例演示如何在 XAML 中实例化 a CheckBox

<CheckBox />

此 XAML 导致以下屏幕截图中所示的外观:

空 CheckBox 的屏幕截图。

默认情况下,CheckBox 是空的。 可以通过用户操作验证CheckBox,或将IsChecked属性设置为true

<CheckBox IsChecked="true"
          SemanticProperties.Description="Agree to terms and conditions" />

此 XAML 导致以下屏幕截图中所示的外观:

已选中复选框的屏幕截图。

或者,可以在代码中创建 a CheckBox

CheckBox checkBox = new CheckBox { IsChecked = true };

响应复选框的更改状态

IsChecked属性由于用户操作或应用程序设置IsChecked属性而发生变化时,CheckedChanged事件将被触发。 可以注册此事件的事件处理程序以响应更改:

<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />

该后台代码文件包含 CheckedChanged 事件的处理程序。

void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
    // Perform required operation after examining e.Value
}

sender 参数负责 CheckBox 此事件。 可以使用它访问CheckBox对象,或区分共享同一CheckBox事件处理程序的多个CheckedChanged对象。

或者,可以在代码中为CheckedChanged事件注册事件处理程序:

CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
    // Perform required operation after examining e.Value
};

数据绑定复选框

可以通过使用数据绑定和触发器来消除CheckedChanged事件处理程序,以响应CheckBox是否被选中或为空。

<CheckBox x:Name="checkBox" />
<Label Text="Lorem ipsum dolor sit amet, elit rutrum, enim hendrerit augue vitae praesent sed non, lorem aenean quis praesent pede.">
    <Label.Triggers>
        <DataTrigger x:DataType="CheckBox"
                     TargetType="Label"
                     Binding="{Binding Source={x:Reference checkBox}, Path=IsChecked}"
                     Value="true">
            <Setter Property="FontAttributes"
                    Value="Italic, Bold" />
            <Setter Property="FontSize"
                    Value="18" />
        </DataTrigger>
    </Label.Triggers>
</Label>

在此示例中,Label 使用绑定表达式在数据触发器中监视 CheckBoxIsChecked 属性。 当此属性变为true时,LabelFontAttributesFontSize属性发生更改。 IsCheckedfalseFontAttributes属性在FontSize属性返回到Label时被重置为其初始状态。

以下屏幕截图显示了当 CheckBox 被选中时的 Label 格式:

数据绑定复选框的屏幕截图。

有关触发器的详细信息,请参阅 触发器

禁用复选框

有时,应用程序可能进入某种状态,此时对 CheckBox 的检查是不当的操作。 在这种情况下,CheckBox 可以通过将其 IsEnabled 属性设置为 false 来禁用。

CheckBox 外观

除了从类继承的属性CheckBox之外,View还定义了一个CheckBox属性,该属性将其颜色设置为 ColorColor

<CheckBox Color="Red" />

以下屏幕截图显示了一系列 CheckBox 已检查的对象,其中每个对象的 Color 属性都设置为不同的 Color

彩色 CheckBox 的屏幕截图。

复选框视觉状态

CheckBox具有一个IsCheckedVisualState控件,可以在其被选中时对CheckBox启动视觉更改。

以下 XAML 示例展示如何为IsChecked状态定义视觉状态:

<CheckBox ...>
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroupList>
            <VisualStateGroup x:Name="CommonStates">
                <VisualState x:Name="Normal">
                    <VisualState.Setters>
                        <Setter Property="Color"
                                Value="Red" />
                    </VisualState.Setters>
                </VisualState>

                <VisualState x:Name="IsChecked">
                    <VisualState.Setters>
                        <Setter Property="Color"
                                Value="Green" />
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateGroupList>
    </VisualStateManager.VisualStateGroups>
</CheckBox>

在此示例中,指定 IsCheckedVisualState 选中时 CheckBox ,其 Color 属性将设置为绿色。 指定 NormalVisualState 的属性,当 CheckBox 处于正常状态时,其 Color 属性将被设置为红色。 因此,总体效果是CheckBox在为空时为红色,而在被选中时为绿色。

有关视觉状态的详细信息,请参阅 视觉状态