# CheckBox 自定义样式指南
CheckBox 的视觉表现通过 `ControlTheme` + Design Token 系统控制。以下介绍几种常见的自定义方式。
---
## 1. 使用属性直接控制
```xml
Checkbox
Checked
Indeterminate
Disabled
Checked Disabled
```
> 📖 完整示例参考:`controlgallery/AtomUIGallery/ShowCases/Views/DataEntry/CheckBoxShowCase.axaml`
---
## 2. 通过 Style 覆盖样式
### 全局统一间距
```xml
```
### 自定义选中态指示器颜色
```xml
```
### 使用伪类选择器
```xml
```
---
## 3. 通过 ControlTheme 完全替换主题
如果需要彻底替换 CheckBox 的模板和样式,可以定义自定义 `ControlTheme`:
```xml
自定义复选框
```
> ⚠️ 注意:完全替换 ControlTheme 将丢失内置的波纹效果、选中动画等功能。建议优先使用 Style 覆盖。
---
## 4. 控制动画行为
```xml
No Wave
No Animation
```
---
## 样式选择器速查
> 说明:Avalonia 样式选择器中使用 `atom|CheckBox` 语法引用 `atom` XML 命名空间下的类型。
### CheckBox 选择器
| 选择器 | 说明 |
|---|---|
| `atom\|CheckBox` | 匹配所有 CheckBox 实例 |
| `atom\|CheckBox:checked` | 匹配选中状态 |
| `atom\|CheckBox:unchecked` | 匹配未选中状态 |
| `atom\|CheckBox:indeterminate` | 匹配不确定态(半选) |
| `atom\|CheckBox:pointerover` | 匹配鼠标悬浮状态 |
| `atom\|CheckBox:pressed` | 匹配按下状态 |
| `atom\|CheckBox:disabled` | 匹配禁用状态 |
| `atom\|CheckBox:focus-visible` | 匹配键盘焦点状态 |
### 模板部件选择器
| 选择器 | 说明 |
|---|---|
| `atom\|CheckBox /template/ atom\|CheckBoxIndicator#Indicator` | 访问选中指示器 |
| `atom\|CheckBox /template/ ContentPresenter#ContentPresenter` | 访问文本内容区域 |
### 组合选择器
| 选择器 | 说明 |
|---|---|
| `atom\|CheckBox:checked /template/ atom\|CheckBoxIndicator#Indicator` | 选中态的指示器(蓝色背景) |
| `atom\|CheckBox:checked:pointerover /template/ atom\|CheckBoxIndicator#Indicator` | 选中态悬浮的指示器 |
| `atom\|CheckBox:not(:checked):pointerover /template/ atom\|CheckBoxIndicator#Indicator` | 未选中态悬浮的指示器(边框变蓝) |
| `atom\|CheckBox:disabled:checked /template/ atom\|CheckBoxIndicator#Indicator` | 禁用选中态的指示器 |
### CheckBoxGroup 选择器
| 选择器 | 说明 |
|---|---|
| `atom\|CheckBoxGroup` | 匹配所有 CheckBoxGroup 实例 |