用途:面向在 .NET 8+(TFM net8.0-windows)上开发与维护 WinForms 桌面应用的场景,提供项目搭建、依赖注入、高 DPI、深色模式与现代化改造的实践指引。
主要能力:
- 项目结构:SDK 风格 .csproj,启用 Nullable 与 ImplicitUsings,使用 PackageReference 与顶级语句,dotnet publish 产出单一部署产物。
- 依赖注入:用 Host.CreateDefaultBuilder 注册服务与窗体,窗体通过构造函数注入,配合 AddHttpClient 使用。
- 高 DPI:推荐 PerMonitorV2,可在 ApplicationConfiguration.Initialize() 前调用 Application.SetHighDpiMode(HighDpiMode.PerMonitorV2),或通过 runtimeconfig.json 配置;建议使用 AutoScaleMode.Dpi、Anchor/Dock、TableLayoutPanel/FlowLayoutPanel,自定义绘制按 DeviceDpi/96.0f 缩放。
- 深色模式:.NET 9 实验性,Application.SetColorMode(SystemColorMode.Dark/System),目标在 .NET 11 定稿;需 Windows 10 1809+,自绘控件应使用 SystemColors。
- 现代化:用 .NET Upgrade Assistant(dotnet tool install -g upgrade-assistant,analyze/upgrade 命令)迁移,改用 async/await 避免阻塞 UI 线程。
适用场景:内部企业工具、数据录入与 CRUD、DataGridView 大数据表格、Windows 专用小工具、既有 .NET Framework WinForms 升级。不适合面向客户的新应用、复杂自定义 UI、跨平台、无障碍优先与触控场景。
限制:仅覆盖 .NET 8+,不含 .NET Framework 旧模式;迁移、桌面测试、Native AOT、UI 框架选型分别由其他技能负责。深色模式 API 与渲染可能变化,第三方与自绘控件支持有限。资料未提供收费、价格与具体效果信息。