用途:在 .NET 中构建或审查基于 WinUI 3 与 Windows App SDK 的现代 Windows 原生桌面 UI,也可用于在 WinUI、WPF、WinForms、MAUI 之间做选型判断。
主要能力:确认 WinUI 是否合适(需要现代 Windows 原生 UI、Fluent Design 与 Windows App SDK 能力时使用;跨平台则考虑 MAUI);选择打包模型(MSIX 打包与非打包在部署、标识和 API 访问上差异明显,非打包可在 .csproj 加 <WindowsPackageType>None</WindowsPackageType>);用 MVVM Toolkit 实现 MVVM,视图保持简单、逻辑放入 ViewModel,使用 [ObservableProperty]、[RelayCommand] 减少样板代码;用 x:Bind 做编译绑定,性能与编译期检查优于 {Binding};通过 Host.CreateDefaultBuilder 接入依赖注入,注册服务、ViewModel 与视图,用 App.GetService<T>() 解析;实现导航服务,按约定把 ViewModel 映射到 Page;处理窗口化(AppWindow)、自定义标题栏、应用生命周期与通知等 Windows App SDK 特性。
使用方式:按流程推进——选型、确定打包模型、搭建 MVVM 与 DI、实现导航与视图、接入 Windows App SDK 特性、在目标运行时验证。显示 ContentDialog 时必须设置 XamlRoot,否则会静默失败。
适用场景:Windows 原生桌面应用开发与代码审查,需要明确平台边界、部署与打包假设、可测试 ViewModel 以及共享层与 Windows 专属层互操作的场景。
限制:行为依赖运行时、打包模型与 Windows 版本,需在 Windows 目标上验证;自定义标题栏需在 Windows 10 和 11 上分别确认渲染。资料提及 Windows App SDK 2.3.1 与 1.8.11 的更新说明及升级后需回归测试的项目,具体版本细节以官方为准。