WinUI 2.8 是最新的稳定版 WinUI,可用于生成生产 UWP 应用程序(以及使用 XAML 岛桌面应用程序)。
该库作为 NuGet 包提供,可以添加到任何新的或现有的 Visual Studio 项目。
注释
有关使用最新版本 的 WinUI 3 生成 Windows 桌面应用的详细信息,请参阅 WinUI 3。
设置 Visual Studio 进行 UWP 开发
下载 Visual Studio 2022 并安装用于 UWP 开发的工具。 有关更详细的说明,请参阅 Visual Studio 文档中 的“创建 UWP 应用 ”。
在 Visual Studio 安装程序应用的 “工作负荷 ”选项卡上,选择以下工作负载和组件:
选择 WinUI 应用程序开发 工作负载。 然后,在 “安装详细信息 ”窗格中的 WinUI 应用程序开发 节点下,选择所需的 UWP 选项(这还将选择任何其他必需的组件)。
- 对于 C#,请选择 通用 Windows 平台工具。
- 对于C++,请选择 C++(v14x)通用 Windows 平台工具 (除非有使用早期版本的具体原因)。
注释
在 Visual Studio 17.10 - 17.12 中,此工作负载称为 Windows 应用程序开发。
下载并安装 WinUI
打开现有项目,或使用 Visual C# > Windows > Universal 下的空白应用模板或语言投影的相应模板创建新项目。
重要
若要使用 WinUI 2.8,必须在项目属性中设置 TargetPlatformVersion >= 10.0.18362.0 和 TargetPlatformMinVersion >= 10.0.17763.0。
在“解决方案资源管理器”面板中,右键单击项目名称,然后选择“ 管理 NuGet 包”。
“解决方案资源管理器”面板,其中右键单击了项目,并突出显示了“管理 NuGet 包”选项。在 NuGet 包管理器中,选择 “浏览 ”选项卡并搜索 Microsoft.UI.Xaml 或 WinUI。 选择要使用的 WinUI NuGet 包 ( Microsoft.UI.Xaml 包包含适用于所有应用的 Fluent 控件和功能)。 单击“安装”。
选中“包括预发行版”复选框,查看包含实验性新功能的最新预发行版。
“NuGet 包管理器”对话框,其中显示了搜索字段中包含 winui 的“浏览”选项卡,并且选中了“包含预发行版”。将 WinUI 主题资源添加到 App.xaml 文件。
有两种方法可以执行此作,具体取决于是否有其他应用程序资源。
a。 如果不需要其他应用程序资源,请添加 WinUI 资源元素
XamlControlsResources
,如下例所示:<Application x:Class="ExampleApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" RequestedTheme="Light"> <Application.Resources> <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" /> </Application.Resources> </Application>
b. 如果有其他资源,那么建议将这些资源添加到
XamlControlsResources.MergedDictionaries
。 这与平台的资源系统配合工作,以支持对XamlControlsResources
资源的替换。<Application x:Class="ExampleApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:Microsoft.UI.Xaml.Controls" RequestedTheme="Light"> <Application.Resources> <controls:XamlControlsResources> <controls:XamlControlsResources.MergedDictionaries> <ResourceDictionary Source="/Styles/Styles.xaml"/> <!-- Other app resources here --> </controls:XamlControlsResources.MergedDictionaries> </controls:XamlControlsResources> </Application.Resources> </Application>
将对 WinUI 包的引用添加到 XAML 页和/或代码隐藏页。
在 XAML 页面中,在页面顶部添加引用
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
在代码中,如果要使用类型名称而不限定它们,可以添加 using 指令。
using MUXC = Microsoft.UI.Xaml.Controls;
C++/WinRT 项目的其他步骤
将 NuGet 包添加到 C++/WinRT 项目时,该工具会在项目的 \Generated Files\winrt
文件夹中生成一组投影标头。 若要将这些头文件引入项目,以便对新类型的引用得以解析,可以进入预编译头文件(通常为 pch.h
),并将它们包含进去。 下面是一个示例,其中包含 为 Microsoft.UI.Xaml 包生成的头文件。
// pch.h
...
#include <winrt/Microsoft.UI.Xaml.Automation.Peers.h>
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.Media.h>
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
...
有关将 WinUI 简单支持添加到 C++/WinRT 项目的完整分步演练,请参阅 简单的C++/WinRT WinUI 示例。
GitHub 上的 WinUI
欢迎 GitHub 上的 microsoft-ui-xaml 存储库 中的 bug 报告。