# 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]` | 无边框的大号描述列表 |