SuperAPI AI 工具集

dotnet-wpf-modern

前端与建站

查看项目

更新于 10-15 22:10

技能介绍

用途:指导在 .NET 8+(TFM net8.0-windows)上构建 WPF 应用,替代 .NET Framework WPF 的旧模式。

主要能力:

  1. 项目与依赖注入:使用 SDK 风格 csproj(UseWPF、Nullable、ImplicitUsings),通过 Host.CreateDefaultBuilder 配置配置、日志与服务,在 OnStartup/OnExit 中调用 _host.StartAsync() 与 _host.StopAsync()。
  2. MVVM:推荐 CommunityToolkit.Mvvm,用 [ObservableProperty]、[RelayCommand]、[NotifyPropertyChangedFor]、[NotifyCanExecuteChangedFor] 等源生成器减少样板代码,支持异步、取消与 CanExecute。
  3. 性能:DirectX 11 渲染、GPU 加速文本、ReadyToRun、分层编译、动态 PGO、冻结对象堆;可用 PublishTrimmed 与 TrimMode=partial 减小体积。
  4. 现代 C#:record 数据模型、主构造函数、模式匹配转换器、集合表达式。
  5. 主题:.NET 9+ 的 Fluent 主题(ThemeMode 为 None/Light/Dark/System,支持 Mica/Acrylic、圆角、强调色),以及通过注册表 AppsUseLightTheme 与 SystemEvents.UserPreferenceChanged 检测系统主题;旧版本可用资源字典自定义主题。

使用方式:按资料中的 csproj 与 App.xaml.cs 示例配置 Host 与 DI,在 ViewModel 中使用 MVVM Toolkit 特性,XAML 中绑定生成的属性与命令。

适用场景:需要现代化、可测试、可注入依赖的 Windows 桌面 WPF 应用。

限制:仅覆盖 .NET 8+,不含 .NET Framework 旧模式;迁移、桌面测试、Native AOT、UI 框架选型、无障碍分别由其他技能负责。WPF 依赖 XAML 反射,裁剪须用 partial 并充分测试;避免混用 {Binding} 与手写 INotifyPropertyChanged,异步代码中不要用 Dispatcher.Invoke,Fluent 主题下不要硬编码颜色。具体性能提升数值需自行基准测试。