# 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]` | 小号方形头像骨架 |