# OptionButtonGroup 自定义样式指南
OptionButtonGroup 的视觉表现通过 `ControlTheme` + Design Token 系统控制。以下介绍几种常见的自定义方式。
---
## 1. 使用属性直接控制
最简单的方式是通过 OptionButtonGroup 的公共属性来控制外观:
```xml
Apple
Pear
Orange
Apple
Pear
Orange
...
...
...
macOS
Linux
Windows
Apple
Pear
Orange
...
```
> 📖 完整示例参考:`controlgallery/AtomUIGallery/ShowCases/Views/DataEntry/RadioButtonShowCase.axaml`
---
## 2. 通过 Style 覆盖样式
可以在 AXAML 中使用 `Style` 对 OptionButton 或 OptionButtonGroup 进行全局或局部样式覆盖:
### 全局统一间距
```xml
```
### 按尺寸定制样式
```xml
```
### 自定义选中态颜色
```xml
```
---
## 3. 通过 ControlTheme 完全替换主题
如果需要彻底替换模板和样式,可以定义自定义 `ControlTheme`:
```xml
```
> ⚠️ 注意:完全替换 ControlTheme 将丢失内置的波纹效果、自定义边框渲染等功能。建议优先使用 Style 覆盖。
---
## 4. 控制动画行为
```xml
...
...
```
---
## 样式选择器速查
> 说明:Avalonia 样式选择器中使用 `atom|OptionButton` / `atom|OptionButtonGroup` 语法引用控件类型。
### OptionButtonGroup 选择器
| 选择器 | 说明 |
|---|---|
| `atom\|OptionButtonGroup` | 匹配所有 OptionButtonGroup 实例 |
| `atom\|OptionButtonGroup[ButtonStyle=Solid]` | 匹配 Solid 样式的组 |
| `atom\|OptionButtonGroup[ButtonStyle=Outline]` | 匹配 Outline 样式的组 |
| `atom\|OptionButtonGroup[SizeType=Large]` | 匹配大号组 |
| `atom\|OptionButtonGroup[SizeType=Middle]` | 匹配中号组 |
| `atom\|OptionButtonGroup[SizeType=Small]` | 匹配小号组 |
| `atom\|OptionButtonGroup:disabled` | 匹配禁用态的组 |
### OptionButton 选择器
| 选择器 | 说明 |
|---|---|
| `atom\|OptionButton` | 匹配所有 OptionButton 实例 |
| `atom\|OptionButton:checked` | 匹配选中状态 |
| `atom\|OptionButton:unchecked` | 匹配未选中状态 |
| `atom\|OptionButton:pointerover` | 匹配鼠标悬浮状态 |
| `atom\|OptionButton:pressed` | 匹配按下状态 |
| `atom\|OptionButton:disabled` | 匹配禁用状态 |
| `atom\|OptionButton[ButtonStyle=Solid]` | 匹配 Solid 模式下的按钮 |
| `atom\|OptionButton[ButtonStyle=Outline]` | 匹配 Outline 模式下的按钮 |
### 组合选择器示例
| 选择器 | 说明 |
|---|---|
| `atom\|OptionButton[ButtonStyle=Solid]:checked:not(:disabled)` | Solid 模式下非禁用的选中按钮 |
| `atom\|OptionButton[ButtonStyle=Outline]:unchecked:pointerover` | Outline 模式下悬浮的未选中按钮 |
| `atom\|OptionButton:disabled:checked` | 禁用且选中的按钮 |
| `atom\|OptionButtonGroup /template/ Border#Frame` | 访问组模板内的外围边框 |
| `atom\|OptionButton /template/ atom\|WaveSpiritDecorator` | 访问按钮模板内的波纹装饰器 |
| `atom\|OptionButton /template/ atom\|IconPresenter#IconPresenter` | 访问按钮模板内的图标展示器 |