关于 powershell-ui-architect
PowerShell UI Architect 是为 PowerShell GUI 和 TUI 开发提供指导的技能,适用于构建脚本界面和交互式管理工具。内容涵盖 WinForms、WPF 与基于控制台的 TUI,并提供实现流程和界面设计实践。
主要功能
- 01设计 WinForms 界面
- 02构建 WPF 与 XAML 界面
- 03使用 Terminal.Gui 创建 TUI
- 04为脚本添加交互式对话框
- 05提供界面与逻辑分离建议
适用场景
- 01为 PowerShell 脚本制作图形界面
- 02构建交互式管理工具
- 03为自动化脚本添加输入对话框
- 04为长时间操作设计进度显示
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill powershell-ui-architect安装后在 Claude Code 中输入/powershell-ui-architect确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/gui_patterns.mdscripts/build_wpf.ps1create_winforms.ps1design_tui.ps1ui_architect_wrapper.ts详细介绍
PowerShell UI 架构师
用途
擅长使用 PowerShell 构建图形用户界面(GUI)和终端用户界面(TUI)。专精于 WinForms、WPF 和基于控制台的 TUI 框架,可用于创建易于使用的 PowerShell 工具。
适用场景
- 构建带 GUI 的 PowerShell 工具
- 创建 WinForms 应用程序
- 为脚本开发 WPF 界面
- 构建终端用户界面(TUI)
- 为自动化脚本添加对话框
- 创建交互式管理工具
- 构建配置向导
- 实现进度显示
快速入门
在以下情况下调用此技能:
- 为 PowerShell 脚本创建 GUI
- 构建 WinForms 或 WPF 界面
- 开发基于终端的 UI
- 为工具添加交互式对话框
- 创建管理工具界面
在以下情况下不要调用:
- 跨平台 CLI 工具 → 使用
/cli-developer - PowerShell 模块设计 → 使用
/powershell-module-architect - Web 界面 → 使用
/frontend-design - Windows 应用程序开发(非 PS)→ 使用
/windows-app-developer
决策框架
UI Type Needed?
├── Simple Dialog
│ └── WinForms MessageBox / InputBox
├── Full Windows App
│ ├── Simple layout → WinForms
│ └── Rich UI → WPF with XAML
├── Console/Terminal
│ ├── Simple menu → Write-Host + Read-Host
│ └── Rich TUI → Terminal.Gui / PSReadLine
└── Cross-Platform
└── Terminal-based only
核心工作流
1. WinForms 应用程序
- 添加 System.Windows.Forms 程序集
- 创建 Form 对象
- 添加控件(按钮、文本框)
- 绑定事件处理程序
- 配置布局
- 使用 ShowDialog() 显示窗体
2. WPF 界面
- 定义 XAML 布局
- 在 PowerShell 中加载 XAML
- 获取控件引用
- 添加事件处理程序
- 实现逻辑
- 显示窗口
3. 使用 Terminal.Gui 构建 TUI
- 安装 Terminal.Gui 模块
- 初始化应用程序
- 创建窗口和视图
- 添加控件(按钮、列表、文本)
- 处理事件
- 运行主循环
最佳实践
- 将 UI 代码与逻辑分开
- 对于复杂的 WPF 布局,使用 XAML
- 妥善处理错误并向用户提供反馈
- 为耗时操作提供进度提示
- 在目标 Windows 版本上进行测试
- 根据受众选择合适的 UI(GUI 或 TUI)
反模式
| 反模式 | 问题 | 正确做法 |
|---|---|---|
| UI 逻辑与业务逻辑混杂 | 难以维护 | 分离关注点 |
| 阻塞 UI 线程 | 界面冻结 | 使用 runspaces/jobs |
| 未验证输入 | 崩溃、数据错误 | 使用前先验证 |
| 尺寸硬编码 | 缩放问题 | 使用锚定/停靠 |
| 没有错误消息 | 用户困惑 | 提供友好的错误对话框 |
评论
支持 Markdown