[ PROMPT_NODE_23714 ]
Avalonia Layout Zafiro 组件
[ SKILL_DOCUMENTATION ]
# 构建通用组件
通过将视图拆分为通用的、可复用的组件,可以减少嵌套并降低复杂性。
## ? 通用组件
与其构建庞大而复杂的视图,不如将重复出现的模式提取为小的 `UserControl`。
### 示例:通用的“摘要项 (Summary Item)”
与其重复编写带有标签和值的 `Grid`:
xml
创建一个通用组件(或使用带有样式的 `EdgePanel`):
xml
## ? 扁平化布局
避免深度嵌套。深度嵌套的 XAML 难以阅读,且可能影响性能。
- **StackPanel vs Grid**:对于简单的线性布局,使用 `StackPanel`(配合 `Spacing`)。
- **EdgePanel**:非常适合“标签 - 值”或“图标 - 文本 - 操作”行。
- **UniformGrid**:用于所有单元格大小相同的网格。
## ? 组件粒度
- **原子 (Atomical)**:自定义按钮或图标等小型控件。
- **分子 (Molecular)**:如带有特定内容的 `HeaderedContainer` 等原子组合。
- **有机体 (Organisms)**:页面中更高级别的部分。
目标是创建既通用到可以复用,又具体到能显著简化父视图的组件。