# CheckBox 使用文档 本文档介绍 AtomUI CheckBox 控件的各种使用方式,示例代码摘自 Gallery 演示程序。 > 📖 Gallery 源码位置:`controlgallery/AtomUIGallery/ShowCases/Views/DataEntry/CheckBoxShowCase.axaml` --- ## 前置准备 在 AXAML 中使用 CheckBox,需要引入以下命名空间: ```xml xmlns:atom="https://atomui.net" ``` 在 C# 代码中引入: ```csharp using AtomUI.Desktop.Controls; // CheckBox, CheckBoxGroup using AtomUI.Controls; // CheckBoxOption, ICheckBoxOption ``` --- ## 1. 基本用法 最简单的复选框,通过 `Content` 设置标签文本: ```xml Checkbox ``` --- ## 2. 禁用状态 通过 `IsEnabled="False"` 禁用复选框,三种状态均支持禁用: ```xml UnChecked Indeterminate Checked ``` --- ## 3. 受控复选框 通过数据绑定控制复选框状态: ```xml ``` --- ## 4. 复选框组 ### 声明式用法 直接在 `CheckBoxGroup` 中添加 `CheckBox` 子项: ```xml Apple Pear Orange Apple Pear Orange Apple Pear Orange ``` ### 数据驱动用法 通过 `ItemsSource` 绑定 `ICheckBoxOption` 集合: ```csharp // ViewModel 或 Code-behind var options = new List { new() { Content = "Apple", IsChecked = true }, new() { Content = "Pear" }, new() { Content = "Orange" } }; BasicCheckBoxGroup.ItemsSource = options; ``` --- ## 5. 全选/部分选联动 通过 Indeterminate 不确定态实现全选联动效果: ```xml Check all Apple Pear Orange ``` **实现逻辑**: - 全选框的 `IsChecked` 绑定到 ViewModel 的计算属性 - 当所有子项选中时,全选框为 `true` - 当部分子项选中时,全选框为 `null`(不确定态,显示横杠) - 当没有子项选中时,全选框为 `false` - 点击全选框时,全部子项同步切换 --- ## 6. Grid 布局中使用 利用 Grid 实现复杂的复选框布局: ```xml A B C D E ``` --- ## 7. MVVM 命令绑定 CheckBox 继承自 Button,完整支持 `Command` 绑定: ```xml Subscribe to newsletter ``` --- ## 8. 控制动画行为 ```xml No Wave ``` --- ## 常见组合模式 ### 设置选项列表 ```xml Email notifications Push notifications SMS notifications ``` ### 表单中使用 ```xml Music Sports Reading Travel ``` ### 协议确认 ```xml I have read and agree to the Terms of Service Submit ```