# Descriptions 自定义样式指南
Descriptions 的视觉表现通过 `ControlTheme` + Design Token 系统控制。以下介绍几种常见的自定义方式。
---
## 1. 使用属性直接控制
最简单的方式是通过控件的公共属性来控制外观:
```xml
```
> 📖 完整示例参考:`controlgallery/AtomUIGallery/ShowCases/Views/DataDisplay/DescriptionsShowCase.axaml`
---
## 2. 通过 Style 覆盖样式
可以在 AXAML 中使用 `Style` 对 Descriptions 进行全局或局部样式覆盖:
### 全局设置边框模式
```xml
```
### 按尺寸定制样式
```xml
```
### 按布局方向定制
```xml
```
---
## 3. 通过 ControlTheme 完全替换主题
如果需要自定义 Descriptions 的模板和样式,可以定义自定义 `ControlTheme`:
```xml
```
> ⚠️ 注意:自定义 ControlTheme 时必须包含 `PART_GridLayout` 模板部件(`Grid`),否则子项布局将失效。
---
## 4. 标题和额外操作区域
通过 `Header` 和 `Extra` 属性自定义标题栏:
```xml
Edit
```
> 📖 参考:`controlgallery/AtomUIGallery/ShowCases/Views/DataDisplay/DescriptionsShowCase.axaml` 中 "Custom size" 示例。
---
## 5. 跨列与占满行
通过 `Span` 和 `IsFilled` 控制子项的列宽:
```xml
```
> 📖 参考:`controlgallery/AtomUIGallery/ShowCases/Views/DataDisplay/DescriptionsShowCase.axaml` 中 "Row" 示例。
---
## 6. 响应式布局
通过断点配置实现响应式列数和跨列:
```xml
Data disk type: MongoDB
Database version: 3.4
```
> 📖 参考:`controlgallery/AtomUIGallery/ShowCases/Views/DataDisplay/DescriptionsShowCase.axaml` 中 "responsive" 示例。
---
## 样式选择器速查
> 说明:Avalonia 样式选择器中使用 `atom|Descriptions` 语法引用 `atom` XML 命名空间下的 `Descriptions` 类型,其中 `|` 是命名空间分隔符。
### 按控件类型选择
| 选择器 | 说明 |
|---|---|
| `atom\|Descriptions` | 匹配所有描述列表 |
### 按属性选择
| 选择器 | 说明 |
|---|---|
| `atom\|Descriptions[IsBordered=True]` | 匹配有边框的描述列表 |
| `atom\|Descriptions[IsBordered=False]` | 匹配无边框的描述列表 |
| `atom\|Descriptions[Layout=Horizontal]` | 匹配水平布局 |
| `atom\|Descriptions[Layout=Vertical]` | 匹配垂直布局 |
### 按尺寸选择
| 选择器 | 说明 |
|---|---|
| `atom\|Descriptions[SizeType=Large]` | 匹配大号(默认) |
| `atom\|Descriptions[SizeType=Middle]` | 匹配中号 |
| `atom\|Descriptions[SizeType=Small]` | 匹配小号 |
### 模板内部元素选择
| 选择器 | 说明 |
|---|---|
| `atom\|Descriptions /template/ DockPanel#HeaderLayout` | 标题栏容器 |
| `atom\|Descriptions /template/ ContentPresenter#HeaderPresenter` | 标题内容展示器 |
| `atom\|Descriptions /template/ ContentPresenter#ExtraPresenter` | 额外操作区展示器 |
| `atom\|Descriptions /template/ Border#ContentFrame` | 内容框架(边框模式的容器) |
| `atom\|Descriptions /template/ Grid#PART_GridLayout` | 子项网格布局容器 |
### 组合选择器示例
| 选择器 | 说明 |
|---|---|
| `atom\|Descriptions[IsBordered=True][SizeType=Small]` | 有边框的小号描述列表 |
| `atom\|Descriptions[IsBordered=False][SizeType=Large]` | 无边框的大号描述列表 |