WinUI
重要
目前,有两代 WinUI:适用于 UWP 的 WinUI 2 和 Windows 应用 SDK (WinUI 3) 中的 WinUI。 虽然两者都可以在 Windows 10 及更高版本上的生产就绪应用中使用,但它们各自有不同的开发目标。
WinUI 是适用于 Windows 桌面应用和 UWP 应用的本机用户体验 (UX) 框架。
通过将 Fluent Design 系统整合到所有体验、控件和样式中,WinUI 使用最新的用户界面 (UI) 模式提供一致、直观且可访问的体验。
通过对桌面应用和 UWP 应用的支持,可使用 WinUI 从头构建应用,也可以使用熟悉的语言(例如 C++、C#、Visual Basic 和 JavaScript)通过用于 Windows 的 React Native 逐步迁移现有的 MFC、WinForms 或 WPF 应用。
WinUI 库托管在 WinUI GitHub 存储库中,你可在该存储库中提交功能请求或 bug,并与 WinUI 交互;在 WinUI 中,你可提交功能请求或 bug,并与 WinUI 团队互动。
WinUI 3 与 WinUI 2 的比较
下表突出显示了 Windows 应用 SDK 中的 WinUI 3 与适用于 UWP 的 WinUI 2 之间的一些最显著的差异。
Windows 应用 SDK 中的 WinUI 3 | 适用于 UWP 的 WinUI 2 |
---|---|
WinUI 3 随 Windows 应用 SDK 提供。 | WinUI 2,第 2 代 WinUI,随附于、独立 NuGet 包并与 Windows 10 SDK 集成。 |
UX 堆栈和控件库与 OS 和 Windows SDK 完全分离,包括 UX 堆栈的核心框架层、组合层和输入层。 | UX 堆栈和控件库与 OS 和 Windows SDK 紧密耦合。 |
WinUI 3 可用于生成生产就绪的桌面/Win32 Windows 应用。 | WinUI 2 可用于 UWP 应用程序并可纳入使用 XAML 岛的桌面应用程序(有关安装说明,请参阅 WinUI 2 库入门)。 |
WinUI 3 作为 Windows 应用 SDK 框架包的组件提供,在 Windows 应用 SDK Visual Studio 扩展 (VSIX) 中随附 Visual Studio 项目模板。 | WinUI 2 的一部分通过操作系统本身(UWP WinRT API 的 Windows.UI.* 系列)提供,一部分作为一个库(“WinUI 2”)并在操作系统本身已包含内容的基础上附带其他控件、元素和最新样式。 对于 WinUI 2,这些功能以可下载的 NuGet 包的形式提供。 但是,UI 堆栈的其他重要部分仍内置于 OS 中,如核心 XAML 框架层、输入层和组合层。 |
WinUI 3 支持将 C#(.NET 6 及更高版本)和 C++ 用于桌面应用。 | WinUI 2 支持 C# 和 Visual Basic (.NET Native),还支持 C++ 应用。 |
只有基于桌面的项目支持 WinUI 3。 若要使用 WinUI 3,UWP 项目可将其项目类型迁移到桌面(请参阅如何将 UWP 应用迁移到 Windows App SDK)。 | 通过将 NuGet 包安装到新的或现有 UWP 项目中,即可将 WinUI 2 并入生产 UWP 应用。 然后,可在新应用中直接引用 WinUI 控件和样式,也可在现有应用中将“Windows.UI.”命名空间引用更新“Microsoft.UI.”来进行引用。 |
WinUI 3 支持基于 Chromium 的 WebView2 控件 | WinUI 2 支持在所有设备上使用 WebView 控件,并且从 WinUI 2.8 开始,支持在桌面版上使用 WebView2 控件。 |
WinUI 3 最低支持 Windows 10 2018 年 10 月更新(版本 1809,OS 内部版本 17763)。 | WinUI 2.0 - 2.7 最低支持 Windows 10 创意者更新(版本 1703,OS 内部版本 15063)。 WinUI 2.8 及更高版本最低支持 Windows 10 2018 年 10 月更新(版本 1809,OS 内部版本 17763)。 |