.NET 多平台应用 UI(.NET MAUI) CheckBox 是一种按钮类型,可以选中或为空。 选中复选框后,它被视为处于打开状态。 当复选框为空时,它被视为关闭。
CheckBox 定义以下属性:
这些属性由 BindableProperty 对象提供支持,这意味着这些属性可以设置样式,并成为数据绑定的目标。
CheckBox 定义了一个事件,当用户操作或应用程序设置导致 IsChecked 属性更改时,该事件被引发。 Value 将设置为该属性的新值 IsChecked 。
创建 CheckBox
以下示例演示如何在 XAML 中实例化 a CheckBox :
<CheckBox />
此 XAML 导致以下屏幕截图中所示的外观:
默认情况下,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 使用绑定表达式在数据触发器中监视 CheckBox 的 IsChecked 属性。 当此属性变为true时,Label的FontAttributes和FontSize属性发生更改。
IsChecked的false和FontAttributes属性在FontSize属性返回到Label时被重置为其初始状态。
以下屏幕截图显示了当 CheckBox 被选中时的 Label 格式:
有关触发器的详细信息,请参阅 触发器。
禁用复选框
有时,应用程序可能进入某种状态,此时对 CheckBox 的检查是不当的操作。 在这种情况下,CheckBox 可以通过将其 IsEnabled 属性设置为 false 来禁用。
CheckBox 外观
除了从类继承的属性CheckBox之外,View还定义了一个CheckBox属性,该属性将其颜色设置为 Color:Color
<CheckBox Color="Red" />
以下屏幕截图显示了一系列 CheckBox 已检查的对象,其中每个对象的 Color 属性都设置为不同的 Color。
复选框视觉状态
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在为空时为红色,而在被选中时为绿色。
有关视觉状态的详细信息,请参阅 视觉状态。
浏览示例