AI 技能AI 插件人工智能【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills点击查看免费下载本文以仓库中 avalonia-layout-zafiro 技能 为骨架系统讲解如何在 Avalonia 项目中借助 Zafiro.Avalonia 构建干净、可维护的 UI 布局。你将掌握语义容器的正确选型、共享样式的组织方式、图标扩展的用法、以 Behaviors 替代 Converters 的交互设计以及一套可直接落地的布局自检清单与反模式红线。技能定位与适用场景avalonia-layout-zafiro是 agentic-awesome-skills 仓库中的社区技能source: community专注于 Zafiro.Avalonia 工具包下的 Avalonia UI 布局规范。它的核心主张是聚焦语义容器、共享样式和最小化 XAML通过少写 XAML、多复用样式与组件来提升布局的可读性、一致性与可维护性。该技能被标记为risk: critical意味着在涉及 Avalonia 布局重构、主题体系搭建或新增界面时应当优先遵循其约束。技能文档由 SKILL.md 作为总入口通过内容地图Content Map分发到五个专题文件文件主题适用时机themes.md主题组织与共享样式搭建或优化应用主题containers.md语义容器HeaderedContainer、EdgePanel、Card组织视图与布局结构icons.md基于IconExtension与IconOptions的图标用法添加与定制图标behaviors.mdXaml.Interaction.Behaviors与规避 Converters实现复杂交互components.md通用组件与减少嵌套创建可复用 UI 元素该技能与仓库中另一份更宏观的规范 avalonia-zafiro-development 互为补充后者定义了函数响应式 MVVM、Result类型错误处理、Zafiro First 等全局约定而前者聚焦布局这一具体战场回答一个页面应该用什么容器、怎么组织样式、怎么写图标这类落地问题。语义容器选对控件少写一半 XAMLZafiro.Avalonia 为常见布局模式提供了专门控件依据数据类型选择合适的容器可以显著简化 XAML。技能文档重点推荐三类容器。HeaderedContainer替代手工头部的 Border/Grid当一个区块需要标题或页眉时优先使用HeaderedContainer而不是用Border/Grid再手工堆一个头部。它自带Header属性把标题与内容的语义直接写进 XAMLHeaderedContainer HeaderSecurity Settings ClassesWizardSection StackPanel !-- Content here -- /StackPanel /HeaderedContainer关键属性Header头部的内容或字符串HeaderBackground头部区域的画刷BrushContentPadding内容区域的内边距。EdgePanel免 Grid 的边缘定位EdgePanel用于把元素放到容器的边缘而无需编写复杂的Grid列定义。典型的图标—文本—金额行可以这样写EdgePanel StartContent{Icon fa-wallet} ContentWallet Balance EndContent$1,234.00 /插槽语义StartContent对齐到左侧或行首Content填充中间剩余空间EndContent对齐到右侧或行尾。在 components.md 中这种能力被进一步抽象为通用行模式Label - Value 或 Icon - Text - Action 行都应优先交给EdgePanel配合一个样式类即可完成无需重复Grid ColumnDefinitions*,Auto。Card信息分组的轻量容器Card用于对相关信息进行分组常嵌套在HeaderedContainer内或作为列表中的独立元素Card HeaderEnter recipient address: TextBox Text{Binding Address} / /Card容器最佳实践使用Classes应用主题变体如ClassesSection、ClassesHighlight需要定制容器内部部件时应通过模板template在样式中定制而不是继续嵌套更多控件。主题组织与共享样式消灭重复属性主题组织是避免 XAML 冗余的关键。参考示例项目 Angor/mnt/fast/Repos/angor/src/Angor/Avalonia/Angor.Avalonia.sln的分层模式颜色与画刷在独立的Colors.axaml中定义并使用DynamicResource以支持主题切换样式按类别分组存放如Buttons.axaml、Containers.axaml、Typography.axaml应用级主题在统一的Theme.axaml中聚合所有样式。反例与正例直接在元素上重复设置属性是最大的冗余来源!-- ❌ BAD: Redundant properties -- HeaderedContainer CornerRadius10 BorderThickness1 BorderBrushBlue BackgroundLightBlue / HeaderedContainer CornerRadius10 BorderThickness1 BorderBrushBlue BackgroundLightBlue / !-- ✅ GOOD: Use Classes and Styles -- HeaderedContainer ClassesBlueSection / HeaderedContainer ClassesBlueSection /样式定义在共享axaml文件中Style SelectorHeaderedContainer.BlueSection Setter PropertyCornerRadius Value10 / Setter PropertyBorderThickness Value1 / Setter PropertyBorderBrush Value{DynamicResource Accent} / Setter PropertyBackground Value{DynamicResource SurfaceSubtle} / /Style注意画刷均通过DynamicResource引用主题资源如Accent、SurfaceSubtle而非硬编码色值——这是技能反模式清单中的第一禁止项。合并资源字典图标定义与其他共享资源集中放在Icons.axaml通过MergedDictionaries合入主题或App.axamlApplication.Resources ResourceDictionary ResourceDictionary.MergedDictionaries MergeResourceInclude SourceUI/Themes/Styles/Containers.axaml / MergeResourceInclude SourceUI/Shared/Resources/Icons.axaml / /ResourceDictionary.MergedDictionaries /ResourceDictionary /Application.Resources这种按类别拆分、统一聚合的资源组织方式让样式、颜色与图标各自有唯一的定义位置任何视觉调整都只需改动一处。图标体系IconExtension 与 IconOptionsZafiro.Avalonia 通过专用标记扩展与样式选项简化图标管理。用{Icon}扩展引入图标支持位置参数与命名参数两种写法!-- Positional parameter -- Button Content{Icon fa-wallet} / !-- Named parameter -- ContentControl Content{Icon Sourcefa-gear} /用IconOptions统一样式IconOptions允许在不额外包裹控件的情况下定制图标外观通常配合样式使用以保持视觉一致。以下样式选中HeaderedContainer模板内部的头部图标区域进行统一配置Style SelectorHeaderedContainer /template/ ContentPresenter#Header EdgePanel /template/ ContentControl#StartContent Setter PropertyIconOptions.Size Value20 / Setter PropertyIconOptions.Fill Value{DynamicResource Accent} / Setter PropertyIconOptions.Padding Value10 / Setter PropertyIconOptions.CornerRadius Value10 / /Style常用属性一览IconOptions.Size图标的宽高IconOptions.Fill图标的颜色/画刷IconOptions.Background图标容器的背景画刷IconOptions.Padding图标容器内的内边距IconOptions.CornerRadius使用背景时的圆角半径。共享图标资源可以把图标定义为资源供全局复用ResourceDictionary xmlnshttps://github.com/avaloniaui Icon x:Keyfa-wallet Sourcefa-wallet / /ResourceDictionary使用StaticResource引用已定义的资源Button Content{StaticResource fa-wallet} /不过{Icon ...}扩展通常更受青睐因为它更简短且可以即时创建新的图标实例。交互与逻辑Behaviors 优先Converters 靠边保持 XAML 干净的另一条主线是把视图中的逻辑降到最低并避免滥用转换器。使用 Interaction.Behaviors 承载 UI 逻辑凡是不属于 ViewModel 的 UI 相关逻辑焦点管理、动画、特殊事件处理都应交给Xaml.Interaction.BehaviorsTextBox Text{Binding Address} Interaction.Behaviors UntouchedClassBehavior / /Interaction.Behaviors /TextBox采用 Behaviors 的三点理由封装性UI 逻辑收敛在可复用的 Behavior 类中XAML 干净避免 code-behind 和复杂的 XAML 触发器可测试性Behavior 可脱离 View 独立测试。尽量避免 Converters转换器往往把魔法逻辑藏在 XAML 里。技能给出的替代优先级ViewModel 属性让 ViewModel 直接提供最终展示格式例如已格式化的stringMultiBinding用于简单的逻辑组合And/Or直接在 XAML 中完成Behaviors处理涉及状态或事件的复杂交互。什么情况下才该用 Converter仅当转换是纯视觉的、且在不同上下文中高度可复用时才使用例如BoolToOpacityConverter。进一步简化如果发现自己需要复杂的转换器或行为技能建议先反问这个组件能否被简化数据模型能否调整使视图绑定更直接——这呼应了组件化思维把问题消灭在源头而不是在 XAML 里打补丁。通用组件与布局扁平化减少嵌套与复杂度的根本手段是把视图拆解为通用、可复用的组件。用通用组件替代重复 Grid以汇总条目为例重复编写Grid属于典型坏味道!-- ❌ BAD: Repeated Grid -- Grid ColumnDefinitions*,Auto TextBlock TextTotal: / TextBlock Grid.Column1 Text{Binding Total} / /Grid正确的做法是创建一个通用组件或使用带样式的EdgePanel!-- ✅ GOOD: Use a specialized control or style -- EdgePanel StartContentTotal: EndContent{Binding Total} ClassesSummaryItem /扁平化布局原则深层嵌套的 XAML 难以阅读还可能影响性能。选择容器的参考StackPanel配合 Spacing用于简单线性布局EdgePanel适合标签—值或图标—文本—动作行UniformGrid用于所有单元格等大的网格场景。组件粒度模型组件可按原子—分子—有机体分层设计原子Atomical小型控件如自定义按钮、图标分子Molecular原子组合如带特定内容的HeaderedContainer有机体Organisms页面的更高级区块。目标是让组件足够通用以便复用又足够具体以显著简化父视图。反模式红线与布局自检清单技能以❌ DONT / ✅ DO的形式划出了清晰的红线禁止DONT在视图中使用硬编码的颜色或尺寸字面量创建Grid与StackPanel的深层嵌套在多个元素间重复相同的视觉属性应使用 Styles为本属于 ViewModel 的简单逻辑使用IValueConverter。应当DO使用DynamicResource引用颜色与画刷将重复布局抽取为通用组件充分利用EdgePanel等 Zafiro.Avalonia 专有面板处理常见 UI 模式。完成布局后可对照技能自带的 Check-List 逐项验收是否使用了语义容器例如用HeaderedContainer而非手工头部的Border是否避免了冗余属性改用axaml中的共享样式是否最小化了嵌套用EdgePanel或通用组件扁平化布局图标是否通过扩展使用{Icon fa-name}配合IconOptions统一样式是否用 Behaviors 替代了 code-behindInteraction.Behaviors承载 UI 逻辑是否避免了 Converters除非确有必要优先使用 ViewModel 属性或 Behaviors使用边界与注意事项该技能与avalonia-zafiro-development一样明确界定了使用边界Limitations仅在任务与上述布局范围清晰匹配时使用技能输出不能替代针对具体环境的验证、测试或专家评审当输入、权限、安全边界或成功标准缺失时应停下来询问澄清而不是盲目照搬。从仓库的 SKILL.md 元信息 可以看出该技能于 2026-02-27 加入、风险等级为criticalcritical 提示其约束严格应作为强约定执行。结合 avalonia-zafiro-development 的四大支柱——函数响应式 MVVM、Result显式错误处理、Avalonia 无关的 ViewModel、Zafiro First 复用优先——可以看出这是一套追求布局即声明、样式即复用的完整开发哲学让 XAML 只描述结构与语义把样式交给共享资源把逻辑交给 Behavior 与 ViewModel最终得到的是易读、易改、可测试的 Avalonia 界面。如需继续深入建议按序阅读本文引用的 themes.md、containers.md、icons.md、behaviors.md、components.md 五个专题文档并结合真实项目如技能中提到的 Angor进行对照验证。赞分享AI 技能AI 插件人工智能【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills点击查看免费下载相关推荐用 Zafiro.Avalonia 构建通用组件消除 XAML 嵌套与冗余的 Avalonia 布局实践用 Zafiro.Avalonia 构建通用组件消除 XAML 嵌套与冗余的 Avalonia 布局实践 本指南围绕 Avalonia UI 开发中的组件化AI 技能AI 插件人工智能使用 Zafiro.Avalonia 语义容器构建可维护的 Avalonia 布局HeaderedContainer、EdgePanel 与 Card 实战指南使用 Zafiro.Avalonia 语义容器构建可维护的 Avalonia 布局HeaderedContainer、EdgePanel 与 Card 实战指AI 技能AI 插件人工智能agentic-awesome-skills 技能指南Avalonia 主题组织与共享样式Zafiro.Avalonia 实战方案agentic awesome skills 技能指南Avalonia 主题组织与共享样式Zafiro.Avalonia 实战方案 本篇技术指南基于 AAAI 技能AI 插件人工智能上一篇SciPy 文档体系中的 Sphinx Autosummary 模板解析property API 页面如何生成下一篇Biome Markdown 格式化器实战解析从 Prettier 兼容性快照到真实世界文档格式化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考