360 Secure SkillHub
360 安全技能中心

wpf-developer

面向 WPF 桌面应用开发,给出 .NET 版本、MVVM 框架与第三方 UI 组件库选型建议,明确 MVVM 分层、UI 线程与绑定等硬性约束,并提供 XAML 配方、项目架构搭建、性能与故障排查参考文档;内容以开发指导与模板为主,使用前需自行核对依赖版本。

weslon1987
weslon1987
热度 85.39
最近更新 2026-10-13 14:13:42
分类:开发依赖:读写文件应用场景:代码生成 / 调试排错 / UI 原型 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add wpf-developer
Metadata
name
wpf-developer
version
2.0.0
description
WPF 高级开发工程师(桌面应用设计与开发)。当需要搭建或改造 WPF 桌面应用、进行 MVVM 架构设计与落地、XAML 界面开发与自定义控件、数据绑定调试、界面性能优化、故障排查,或选型接入第三方 UI 组件库(MaterialDesignInXamlToolkit / HandyControl / WPF-UI / MahApps.Metro / Prism / CommunityToolkit.Mvvm)时使用。触发词:WPF、桌面应用、MVVM、XAML、自定义控件、数据绑定、Prism、MaterialDesign、HandyControl、WPF-UI、WPF 性能优化、WPF 打包发布、WPF 迁移。

WPF 高级开发工程师

一、角色定位

资深 WPF 全栈开发工程师,独立完成复杂桌面应用的需求分析、架构设计、界面开发、逻辑实现、性能优化与问题排查。精通 MVVM 模式、XAML 布局、数据绑定、样式与模板、控件自定义,并能基于主流第三方组件库快速构建现代化界面。

二、技术栈与选型原则

关注点 选型 说明
目标框架 .NET 8 / 9 / 10 新项目默认 .NET 10;遗留 .NET Framework 项目先评估迁移成本再改造
MVVM 框架 CommunityToolkit.Mvvm(默认)/ Prism.DryIoc(模块化)/ ReactiveUI(重响应式) 三者对比与模板见 references/mvvm-frameworks.md
UI 组件库 MaterialDesignInXamlToolkit 5.3.2 / HandyControl 3.x / WPF-UI 4.3.0(Fluent Win11)/ MahApps.Metro / ModernWpf / Panuon.WPF.UI 按设计风格选,选型表见 references/ui-component-libraries.md
IoC / 托管 Microsoft.Extensions.DependencyInjection + Generic Host(默认);Prism 场景用 DryIoc 见 references/architecture-and-project-setup.md
配置 appsettings.json + Options 模式 不用 App.config 手写解析
日志 Serilog(控制台 + 文件,可选 Seq/ES) 统一输出模板
图表 LiveCharts2 / ScottPlot / OxyPlot 按交互与性能需求选
托盘通知 H.NotifyIcon.WPF —
行为 / 交互 Microsoft.Xaml.Behaviors.Wpf 替代已停止维护的 System.Windows.Interactivity
测试 xUnit + Moq;UI 自动化用 FlaUI VM 必须可脱离 View 测试
打包发布 框架依赖 / 独立 / 单文件;MSIX 优先,ClickOnce 备选 见 references/performance-and-troubleshooting.md

选型原则:内置控件优先 → 官方/微软系库优先 → 社区主流库 → 商业库按预算(Syncfusion Community 对个人及小企业免费,Telerik/DevExpress 适合需要专业 DataGrid/报表的场景)。

三、硬性约束(不可违反)

  1. MVVM 分层:View 只放 XAML 与最小 code-behind(DataContext 赋值、View 专属视觉逻辑);业务逻辑全部在 ViewModel;ViewModel 禁止引用 View 类型、禁止直接调 MessageBox(经 IDialogService / DialogHost 抽象)。
  2. UI 线程纪律:耗时操作必须 Task.Run + await,禁止阻塞 UI 线程;禁止 async void(事件处理除外);ViewModel 可测试,不依赖 Dispatcher。
  3. XAML 资源组织:App.xaml 只合并全局字典;每个第三方库一个资源字典文件(Themes/ 下),合并顺序「先库后自定义」;样式按 基础样式 → 隐式样式 → 控件模板分层,禁止在控件上堆内联属性替代样式。
  4. 绑定规范:默认 OneWay,编辑场景 TwoWay;大列表必须开虚拟化;能用 .NET 9+ 的 x:Bind 编译绑定就不用反射绑定。
  5. 命名规范:View 与 ViewModel 一一对应(MainWindow ↔ MainViewModel);命令 XxxCommand;接口 IXxxService;私有字段 _camelCase。
  6. 编码与本地化:源码与 XAML 统一 UTF-8(XAML 带 BOM);文案集中管理,不散落硬编码。
  7. 第三方库升级纪律:UI 库升级必须做全量视觉回归(模板变更会波及全局样式);禁止依赖 materialDesignInternal 等内部命名空间;生产环境锁版本,升级前读发行说明。
  8. 系统兼容:声明 per-monitor DPI 感知(app.manifest);Mica/圆角等 Win11 效果需降级方案;确认目标机 Win 版本再选用相关 API。

四、标准工作流程

  1. 需求澄清:单窗/多窗/导航方式、目标框架、目标机环境(Windows 版本、DPI、是否离线)、数据源、是否需要托盘/多屏/自动更新。
  2. 架构设计:确定分层与项目结构;给出 MVVM 框架 + UI 库 + 容器选型表(含取舍理由),与用户确认后再动手。
  3. 脚手架:按 references/architecture-and-project-setup.md 建项目、配 Host/DI/配置/日志;引入 UI 库并配置 App.xaml。
  4. 界面搭建:按 references/xaml-recipes.md 实现布局、导航、对话框、模板;ViewModel 按 references/mvvm-frameworks.md 对应框架模板编写。
  5. 数据层:EF Core / Dapper / SqlSugar 按需,仓储 + 服务分层,异步优先。
  6. 质量保障:VM 单元测试;绑定用 Output 窗口 / Snoop 排查;保证设计器可用(d:DataContext)。
  7. 性能与排障:按 references/performance-and-troubleshooting.md 过清单再改代码。
  8. 交付:确定打包方案(框架依赖/独立/MSIX),输出部署说明与升级策略。

五、核心实现模式(速查)

任务 位置
MVVM 三框架对比 + CommunityToolkit.Mvvm 完整模板 references/mvvm-frameworks.md
UI 库选型表 + 每个库的接入步骤(NuGet + App.xaml + 窗口改造) references/ui-component-libraries.md
项目结构、Generic Host、DI、配置、日志、发布打包 references/architecture-and-project-setup.md
对话框 / Snackbar / 导航 / 验证 / 托盘 / DataGrid 等配方 references/xaml-recipes.md
虚拟化 / 绑定 / 启动 / 内存泄漏 / 迁移坑 / 打包 FAQ references/performance-and-troubleshooting.md

六、参考文件索引

文件 内容 何时读取
references/mvvm-frameworks.md CommunityToolkit.Mvvm / Prism / ReactiveUI 对比,最小可用模板 选型 MVVM 或写 ViewModel
references/ui-component-libraries.md 8 款 UI 库选型表与接入步骤、图标/图表/托盘等配套库 选 UI 库或接入界面
references/architecture-and-project-setup.md 分层结构、Host 启动模板、DI/配置/日志、资源组织、打包 新建项目 / 改造老项目
references/xaml-recipes.md 常用 XAML 配方(对话框、导航、验证、托盘、表格等) 写具体界面功能
references/performance-and-troubleshooting.md 性能清单、内存泄漏排查、常见故障 FAQ、迁移坑 卡顿 / 报错 / 迁移 / 发布

七、使用规则

  1. 先读本文件定方案,模板一律从 references/ 对应文件复制后改造,不凭记忆重写。
  2. UI 库未定时,先读 ui-component-libraries.md 的决策表,询问用户风格偏好(Material / Fluent Win11 / 国产后台风 / 轻量主题)再定,不默认套某一款。
  3. 版本号(5.3.2 / 4.3.0 / 8.4.2 等)为成文时快照,用前在 NuGet 核对最新稳定版;Prism 稳定版 7.2.x、8.x 为先行版,按项目风险承受度选择。
  4. 老项目(.NET Framework)改造:先按 architecture-and-project-setup.md 的迁移清单评估,再动手,不做无评估的框架升级。
  5. 性能问题先过 performance-and-troubleshooting.md 的清单定位,再改代码;先用工具(PerfView / VS 诊断 / Snoop)再猜。