# Skeleton 自定义样式指南
Skeleton 系列控件的视觉表现通过 `ControlTheme` + Design Token 系统控制。由于 Skeleton 是一个控件族(包含多个子控件),每个子控件有独立的 ControlTheme,但共享同一套 `SkeletonToken`。
---
## 1. 使用属性直接控制
### 组合骨架屏
```xml
真实内容
```
### 独立元素骨架屏
```xml
```
> 📖 完整示例参考:`controlgallery/AtomUIGallery/ShowCases/Views/Feedback/SkeletonShowCase.axaml`
---
## 2. 通过 Style 覆盖样式
### 全局启用流光动画
```xml
```
### 自定义独立元素的默认尺寸
```xml
```
### 统一按钮骨架为胶囊形
```xml
```
### 自定义头像骨架为方形
```xml
```
### 组合骨架屏默认启用头像
```xml
```
---
## 3. 尺寸控制
### 独立元素尺寸
通过 `SizeType` 控制 `SkeletonButton`、`SkeletonInput`、`SkeletonAvatar` 的高度:
```xml
```
### Block 模式
```xml
```
### 自定义头像尺寸
```xml
```
---
## 4. 动画控制
```xml
```
尺寸和动画支持数据绑定:
```xml
```
---
## 样式选择器速查
> 说明:Avalonia 样式选择器中使用 `atom|Skeleton` 语法引用 `atom` XML 命名空间下的控件类型,其中 `|` 是命名空间分隔符。
### 按控件类型选择
| 选择器 | 说明 |
|---|---|
| `atom\|Skeleton` | 匹配组合骨架屏 |
| `atom\|SkeletonButton` | 匹配按钮骨架 |
| `atom\|SkeletonInput` | 匹配输入框骨架 |
| `atom\|SkeletonAvatar` | 匹配头像骨架 |
| `atom\|SkeletonImage` | 匹配图片骨架 |
| `atom\|SkeletonNode` | 匹配自定义节点骨架 |
| `atom\|SkeletonLine` | 匹配单行骨架(段落内子元素) |
| `atom\|SkeletonParagraph` | 匹配段落骨架 |
### 按属性选择
| 选择器 | 说明 |
|---|---|
| `atom\|Skeleton[IsShowAvatar=True]` | 匹配显示头像的组合骨架屏 |
| `atom\|Skeleton[IsShowTitle=True]` | 匹配显示标题的组合骨架屏 |
| `atom\|Skeleton[IsShowParagraph=True]` | 匹配显示段落的组合骨架屏 |
| `atom\|SkeletonButton[Shape=Circle]` | 匹配圆形按钮骨架 |
| `atom\|SkeletonButton[Shape=Round]` | 匹配胶囊形按钮骨架 |
| `atom\|SkeletonButton[IsBlock=True]` | 匹配 Block 模式的按钮骨架 |
| `atom\|SkeletonAvatar[Shape=Square]` | 匹配方形头像骨架 |
| `atom\|SkeletonButton[SizeType=Large]` | 匹配大号按钮骨架 |
| `atom\|SkeletonButton[SizeType=Small]` | 匹配小号按钮骨架 |
| `atom\|SkeletonLine[IsRound=True]` | 匹配胶囊形圆角的行骨架 |
### 模板部件选择器
| 选择器 | 说明 |
|---|---|
| `atom\|Skeleton /template/ atom\|SkeletonAvatar#PART_Avatar` | 组合骨架屏内的头像部件 |
| `atom\|Skeleton /template/ atom\|SkeletonTitle#PART_Title` | 组合骨架屏内的标题部件 |
| `atom\|Skeleton /template/ atom\|SkeletonParagraph#PART_Paragraph` | 组合骨架屏内的段落部件 |
### 组合选择器示例
| 选择器 | 说明 |
|---|---|
| `atom\|Skeleton[IsShowAvatar=True][IsShowParagraph=True]` | 同时显示头像和段落的组合骨架屏 |
| `atom\|Skeleton[IsShowAvatar=False][IsShowTitle=True]` | 无头像有标题的组合骨架屏(段落行数默认3) |
| `atom\|SkeletonButton[SizeType=Large][Shape=Round]` | 大号胶囊形按钮骨架 |
| `atom\|SkeletonAvatar[Shape=Square][SizeType=Small]` | 小号方形头像骨架 |