推荐使用 Visual Studio IDE,利用 WinUI 和 Windows 应用 SDK 构建 Windows 应用。 它提供与专为基于 XAML 的应用开发而构建的 Windows 平台和工具的深度集成。
面向Windows app开发人员的主要功能包括:
- XAML 热重载 — 在应用运行时修改 XAML 标记,并在不重启的情况下立即看到应用更改
- XAML 实时可视化树 - 检查正在运行的应用的运行时可视化树以调试布局问题并了解元素层次结构
- 适用于 XAML 和 C#/C++ 的 IntelliSense — 获取标记和代码隐藏的代码补全、快速信息及错误突出显示
- 集成调试 - 在 XAML 和代码中设置断点、检查数据绑定和诊断 UI 呈现问题
若要开始,请参阅 “创建并运行 WinUI 3 项目”。
WinUI project 模板
Visual Studio包含项目模板,可帮助你快速创建 WinUI 应用。 若要查找它们,请打开 File>New>Project, 然后在project类型下拉列表中按 WinUI 进行筛选,或搜索 WinUI。
应用模板
根据要从中开始的应用外壳选择模板。 选择模板名称以查看它创建的应用的屏幕截图。
| 模板 | 语言 | winapp CLI 模板 | 说明 |
|---|---|---|---|
| WinUI 空白应用 (打包) | C# 和C++ |
winui (C#) |
没有内容的单个窗口。 这是大多数新应用的推荐起点。 |
| WinUI 导航应用 | C# | winui-navview |
包含“主页”、“关于”和“设置”页的 NavigationView 外壳。 |
| WinUI TabView 应用 | C# | winui-tabview |
选项卡位于标题栏中的 TabView shell。 |
| WinUI MVVM 应用 | C# | winui-mvvm |
将 Model-View-ViewModel (MVVM) 模式与 CommunityToolkit.Mvvm 配合使用的页面和视图模型。 |
| 空白应用(使用 WAP 项目打包) | C# 和C++ | 不可用 | 空白应用加上单独的Windows应用程序打包Project。 |
从命令行创建项目
C# 应用模板也可在终端中通过 Windows 应用 开发 CLI(winapp CLI)获取。 将模板名称从表传递到 winapp new,然后使用以下命令生成并启动应用 winapp run:
winapp new --name MyApp --template winui-navview --use-defaults
cd MyApp
winapp run
运行 winapp new --list 以查看每个已安装的模板。 生成的项目是一个标准 .csproj,因此可以随时在Visual Studio中打开它。 有关详细信息,请参阅 将 winapp CLI 与 WinUI 配合使用。
WinUI 空白应用 (打包)
使用基于 WinUI 的 UI 在 C# (.NET) 或 C++ (Win32) 中创建桌面应用。 项目从派生自 Microsoft.UI.Xaml.Window 的单个窗口开始,已准备好让您添加自己的控件和页面。 这是大多数新应用的推荐起点。 有关演练,请参阅 “创建并运行 WinUI 3 项目”。
WinUI 导航应用
在左窗格中创建具有 NavigationView 的 C# 应用。 该模板包括“主页”和“关于”页面、“设置”项和在它们之间切换的导航代码。
WinUI TabView 应用
创建一个 C# 应用,其中包含一个延伸到标题栏的 TabView。 该模板包括“主页”和“关于”选项卡,以及用于添加新选项卡的按钮。
WinUI MVVM 应用
创建一个 C# 应用,该应用使用 MVVM 模式将 UI 与逻辑分开。 该模板使用 CommunityToolkit.Mvvm 作为可观察的属性和命令,并显示绑定到视图模型的计数器。
空白应用(使用 WAP 项目打包)
与上面的 WinUI 空白应用(打包)模板相同,但向解决方案添加单独的 Windows 应用程序打包项目 。 此项目负责将您的应用程序构建为 MSIX 包以供分发。 如果你更喜欢更简单的设置,则可以改用 single-project MSIX以避免维护单独的打包project。
组件和测试模板
这些模板创建与 WinUI 应用一起使用的库和测试项目。
| 模板 | 语言 | winapp CLI 模板 | 说明 |
|---|---|---|---|
| WinUI 类库 | C# | winui-lib |
用于跨 WinUI 应用共享代码和 UI 组件的.NET类库(DLL)。 |
| Windows 运行时组件 | C++ | 不可用 | 使用 C++/WinRT 编写的 Windows 运行时 组件,无论编程语言如何,都可以由任何具有基于 WinUI 的 UI 的应用使用。 |
| WinUI 单元测试应用 | C# 和C++ |
winui-unittest (C#) |
MSTest project,用于针对应用编写和运行自动测试。 |
WinUI 项模板
项模板允许向现有 WinUI project添加新文件。 在 解决方案资源管理器 中右键单击项目,选择 Add>New Item,然后选择WinUI选项卡。
| 模板 | 语言 | 说明 |
|---|---|---|
| 空白页 | C# 和C++ | 添加一个 XAML 文件和代码文件,该文件定义派生自 Microsoft.UI.Xaml.Controls.Page 类的新页面。 |
| 空白窗口 | C# 和C++ | 添加一个 XAML 文件和代码文件,该文件定义派生自 Microsoft.UI.Xaml.Window 类的新窗口。 |
| 内容对话框 | C# | 添加一个 XAML 文件和代码文件,该文件定义一个派生自 Microsoft.UI.Xaml.Controls.ContentDialog 类的新对话框。 有关详细信息,请参阅 对话框控件。 |
| 资源字典 | C# 和C++ | 添加一个空的、键控的 XAML 资源集合。 有关详细信息,请参阅 ResourceDictionary 和 XAML 资源引用。 |
| 资源文件(.resw) | C# 和C++ | 添加用于存储应用的字符串和条件资源的文件。 可以使用此项来帮助本地化应用。 有关详细信息,请参阅 UI 和应用包清单中的本地化字符串。 |
| 模板化控件 | C# 和C++ | 添加用于创建具有默认样式的模板化控件的代码文件。 模板化控件派生自 Microsoft.UI.Xaml.Controls.Control 类。有关演示如何使用此项目模板的演练,请参阅 生成 XAML 模板化控件。 有关模板化控件的详细信息,请参阅 自定义 XAML 控件。 |
| 用户控件 | C# 和C++ | 添加一个 XAML 文件和代码文件,用于创建派生自 Microsoft.UI.Xaml.Controls.UserControl 类的用户控件。 通常,用户控件封装相关的现有控件并提供自己的逻辑。有关用户控件的详细信息,请参阅 自定义 XAML 控件。 |
若要从 C# 项目中的命令行添加这些项,请使用匹配 dotnet new 的项模板,例如 dotnet new winui-page -n SettingsPage。 运行 dotnet new list winui 以查看所有项模板。