用途:在构建 WinUI 3 界面时,按意图检索合适的控件,并获取来自 WinUI 3 Gallery 与 Windows Community Toolkit 的真实示例代码,避免凭记忆手写 XAML。该命令面向智能体设计,也支持手工执行。
主要能力:搜索 WinUI 3 Gallery、Windows Community Toolkit 及少量精选核心模式;按 --id 获取完整 XAML 和/或 C# 示例;--source 限定来源(gallery、toolkit、core、reactor);--max 增加候选;--list 浏览全部;--refresh 强制从 GitHub 刷新缓存;--json 输出稳定结构。
使用方式:先搜索,例如 winapp find-ui "tabbed layout";再按返回的 id 取代码,例如 winapp find-ui --id gallery-tabview-1,可同时传多个 --id 批量获取。加 --json 时,搜索返回 { query, matchCount, matches },--id 返回 { results: [ { id, found, content } ] },--list 返回 { count, items };错误时在 stdout 输出 {"error":"..."} 并返回非零退出码。命中退出码为 0,无匹配或错误为 1。
注意:示例 C# 为类体片段,using 指令列在代码上方的 Namespace: 行;XAML 的 xmlns 列在 Setup: 行,需自行加入项目。Reactor 来源默认不参与搜索,仅在使用 --source reactor 时检索,且其示例为纯 C#。--source 仅适用于搜索。语料库随 CLI 内置,可离线使用;联网时按用户缓存于 <global .winapp>/cache/find-ui,最多每 24 小时刷新一次。--json 包含 corpus 字段,值为 network、cache 或 embedded。
限制:仅覆盖 WinUI 3,不支持 WPF、WinForms 或其他 UI 框架。搜索、--id、--list 三种模式互斥;查询应聚焦单一功能。上游决定示例是否存在,winapp 不新增也不改写示例,仅做清理并移除无配套代码的事件处理程序。示例缺失或本身有误时,按结果标注来源报告([gallery] 或 [toolkit]);若疑似截断、缺少处理程序或无法解析,则为 winapp 提取问题。该命令与 winapp ui search(通过 UI Automation 搜索运行中应用的 UI 树)不同。