SuperAPI AI 工具集

wpf-xaml-style-generator

前端与建站

查看项目

更新于 10-15 09:46

技能介绍

用途

wpf-xaml-style-generator 用于为 WPF 应用程序生成 XAML 样式、控件模板和资源字典,并提供主题支持。其目标是创建一致、可维护的 UI 样式,遵循现代设计原则。

主要能力

  • 生成控件样式和模板
  • 创建带主题支持的资源字典
  • 设置浅色/深色主题切换
  • 生成画刷和颜色资源
  • 创建自定义控件模板
  • 设置隐式与显式样式
  • 生成动画资源
  • 配置 Fluent Design 集成

输入参数

输入为对象,必填字段为 projectPath(WPF 项目路径)。可选字段包括:

  • designSystem:枚举值 fluent、material、custom,默认 fluent
  • themes:数组,元素枚举值 light、dark、high-contrast,默认 ["light", "dark"]
  • controls:数组,元素枚举值 button、textbox、combobox、listbox、datagrid、menu、all,默认 ["all"]
  • accentColors:对象,包含 primary 和 secondary 字符串
  • includeAnimations:布尔值,默认 true

输出

输出为对象,必填字段为 success(布尔值)。可选字段包括 files(数组,每项含 path 和 type,type 枚举值为 colors、brushes、styles、templates、themes)和 mergedDictionaries(字符串数组)。

资源字典结构

生成的资源字典按以下结构组织:

Resources/ ├── Themes/ │ ├── Colors.Light.xaml │ ├── Colors.Dark.xaml │ └── Colors.HighContrast.xaml ├── Brushes.xaml ├── Styles/ │ ├── ButtonStyles.xaml │ ├── TextBoxStyles.xaml │ ├── ComboBoxStyles.xaml │ └── DataGridStyles.xaml ├── Templates/ │ └── ControlTemplates.xaml └── Themes.xaml(合并字典)

生成的 XAML 示例

Colors.Light.xaml

包含背景色、前景色、强调色、边框色和状态色等 Color 资源,例如 BackgroundPrimary 为 #FFFFFF、AccentPrimary 为 #0078D4、SuccessColor 为 #107C10 等。

Brushes.xaml

定义响应主题变化的动态画刷,使用 DynamicResource 引用颜色资源,例如 BackgroundPrimaryBrush、ForegroundPrimaryBrush、AccentBrush、BorderBrush,以及线性渐变画刷 AccentGradientBrush。

ButtonStyles.xaml

包含基础按钮样式 BaseButtonStyle(设置背景、前景、边框、内边距、最小高度、字号、光标和控件模板,并通过触发器处理鼠标悬停、按下和禁用状态)、主要按钮样式 PrimaryButtonStyle(基于 BaseButtonStyle,使用强调色背景),以及针对所有按钮的隐式样式。

主题管理器

提供 ThemeManager 类,包含 SetTheme 方法(移除现有主题字典并插入新主题字典)、CurrentTheme 属性和 ToggleTheme 方法(在 Light 与 Dark 之间切换)。

App.xaml 集成

在 Application.Resources 中通过 MergedDictionaries 合并主题颜色、画刷和各控件样式字典,主题颜色需放在最前以便画刷引用。

最佳实践

  • 对可切换主题的资源使用 DynamicResource
  • 按功能组织:颜色、画刷、样式分开
  • 遵循命名约定:资源键名保持一致
  • 提供基础样式:便于自定义
  • 测试所有主题:验证对比度和可访问性
  • 记录资源:为复杂模板添加注释

相关技能与智能体

相关技能包括 wpf-mvvm-scaffold(应用架构)、wpf-high-dpi-analyzer(DPI 缩放)、desktop-ui-implementation process(UI 工作流)。相关智能体包括 wpf-dotnet-expert(WPF 专业知识)和 platform-convention-advisor(设计指南)。

限制

资料未提供该技能的收费、价格、平台支持范围、具体安装命令及实际运行效果等信息。