Windows 开发的示例应用程序

本页面向正在寻找演示特定任务、功能和 API 使用模式的 Windows 开发示例的用户。

本文档中的示例演示了 Windows 应用 SDK/WinUI 3、UWP/WinUI 2、.NET MAUI 等中的功能。 有关更多示例目录,请参阅示例浏览器

本文档中使用的大部分示例都包含可在 Visual Studio 中打开的解决方案 (.sln) 文件。 有关其他说明,请参阅每个资源的 Readme

Windows App SDK/WinUI 3 示例

示例存储库

示例存储库 说明
microsoft/WindowsAppSDK-Samples 这是主 Windows 应用 SDK 示例存储库。
WinUI 3 库 展示各种 WinUI 3 控件以及如何有效地使用这些控件。 请参阅 Microsoft Store 中的 WinUI 3 库
输入和合成库 展示各种 Microsoft.UI.CompositionMicrosoft.UI.Input API 调用。

演示特定任务的示例

示例 任务
激活 处理应用激活类型应用激活 API 控制应用处理激活类型(如 LaunchFileProtocol)的方式。
应用实例化 确定应用程序实例化行为应用实例化 API 控制用户是否可以同时运行应用程序的多个实例。
电源通知 使用状态通知状态通知用于检测用户设备何时进入特定状态,例如低功耗模式。
重启 以编程方式重启应用。 此示例使用 Windows 应用 SDK 重启 API
资源管理 根据用户和设备设置定制应用MRT 核心资源管理 API 用于根据特定情况调整资源利用率。
Deployment Manager 调用部署 API 以确保 Windows 应用程序框架组件是最新版本。
安装程序 在不使用控制台窗口的情况下启动 Windows 应用 SDK 安装程序
使用 DWriteCore 进行 TextRendering 使用 DWriteCore API 呈现文本
未打包 适用于使用外部位置打包或未打包的依赖于框架的应用的 Windows 应用 SDK 部署指南,这是打包应用部署体系结构的替代方法。
动态依赖项 演示使用动态依赖项 API 在运行时引用 MSIX 包中所示的技术。
推送通知 向应用添加推送通知推送通知可用于向用户发送设备本机应用通知。
应用通知 向应用添加 toast 通知。 有关详细信息,请参阅应用通知
自定义控件 “向应用添加自定义 C#/WinRT 控件”使用使用 C#/WinRT 创作 Windows 运行时组件中演示的模式。
窗口化 向应用添加窗口化支持,以创建/隐藏新窗口、自定义标题栏等。 有关详细信息,请参阅管理应用窗口

UWP/WinUI 2 示例

示例存储库

示例存储库 说明
microsoft/Windows-universal-samples 这是主 UWP 示例存储库。
microsoft/DesktopBridgeToUWP-Samples 框架转换(例如 Win32 -> UWP 等)的示例。
WinUI 2 库 展示各种 WinUI 2 控件以及如何有效地使用这些控件。 请参阅 Microsoft Store 中的 WinUI 2 库
通用 Windows 平台 (UWP) 应用示例 演示 UWP 的 WinRT API 使用模式。

演示特定任务的示例

示例 任务
360 度视频播放 播放 360 度视频,为用户提供沉浸式/探索体验
高级强制转换 使用高级强制转换允许用户在其他设备(如电视)上共享其内容
动画指标 通过 AnimationMetrics API 创建 Windows 样式设计,使应用与 Windows 保持一致
应用窗口 创建新窗口并控制其位置、大小或画中画模式
应用程序数据 轻松存储用户唯一数据,例如会话状态、首选项和其他设置,以便将其备份到 Windows 内的云中
应用程序资源 将图像和字符串等资源存储在远离应用代码的位置,以便你可以随时轻松编辑它们
约会 使用日历应用集成创建/管理约会
关联启动 使用关联启动将应用与特定文件类型和协议相关联
音频制作 使用音频 API 加载音频文件、播放音频、从其他应用捕获音频、将效果应用于音频以及制作自定义效果
后台任务 当应用未运行时,使用后台任务来运行特定事件(例如更新应用)
基本挂起 使用挂起管理器在应用暂停或关闭时保存/还原应用的状态
相机初学者工具包 使用 MediaCapture API 停止/启动相机预览、拍摄照片/视频、处理旋转以及根据相机的角度调整元素
相机取景框 在连接新相机时处理单个相机取景框或监视器
禁用屏幕捕获 禁用和启用屏幕捕获以保护敏感的应用内信息
文件访问 使用存储 API 访问文件、读取文件属性、将数据写入文件等
文件选取器 创建文件和目录选取器,以便应用可以提示用户选择文件和目录
JSON 序列化和反序列化从 API 返回的 JSON 对象
PDF 文档 通过 PDF 命名空间显示和修改 PDF
标题栏 自定义标题栏属性、颜色、样式和控件
WebSocket 用 WebSocket 与其他应用(或浏览器页面)通信,避免 HTTP 开销

.NET MAUI 示例

示例存储库

示例存储库 说明
dotnet/maui-samples .NET MAUI 是用于使用 C# 和 XAML 创建移动应用和桌面应用的跨平台框架。 使用 .NET MAUI,可从单个共享代码库开发可在 Android、iOS、iPadOS、macOS 和 Windows 上运行的应用。 这些应用也可在示例浏览器中使用。
.NET 播客应用 .NET 播客应用是一个示例应用程序,其中展示了 .NET 6、ASP.NET Core、Blazor、.NET MAUI、Azure 容器应用、Orleans 等。

演示特定任务的示例

示例名称/链接 任务
动画 使用动画可使你的应用生动逼真
行为 添加功能时无需使用行为进行子类化,而是将行为类附加到控件
控件模板 定义 ContentView 派生的自定义控件和 ContentPage 派生的页面的可视结构
数据绑定 将对象绑定到实际 UI 元素,当其中一个元素发生更改时,会迅速更新另一个元素
Shell 应用 使用 .NET Shell 应用可降低复杂性、重复使用代码并将现有 Windows 功能(例如 URI 导航和集成搜索栏)集成到应用中
触发器 当事件或数据发生更改时,使用触发器有选择地更新、隐藏或显示特定控件

更多 Windows 开发示例存储库

示例存储库 说明
Template Studio 使用基于向导的 UI 加速应用创建。
应用模型示例 包含示例应用,演示各种平台(例如通用 Windows 平台 (UWP)、Windows 窗体 (WinForms) 和控制台)的核心应用程序激活和生命周期管理基础结构。
Windows 经典示例 演示各种桌面应用方案,包括 Win32、Windows 运行时 (WinRT) 和 .NET。
UWP 示例的桌面桥 演示用于将桌面应用(例如 Win32、Windows Presentation Foundation 和 Windows 窗体)和游戏转换为 UWP 应用和游戏的 Desktop Conversion Extensions。
DirectX 12 图形示例 演示如何使用 DirectX 12 在 Windows 中生成图形密集型应用。
Windows Composition 示例 演示如何使用 Windows.UI.XamlWindows.UI.Composition 命名空间中的类型来制作美观的 UWP 应用。
Windows IoT 示例 帮助你开始在设备上针对 Windows 进行开发的示例应用。
Windows 社区工具包 帮助程序函数、自定义控件和应用服务的集合。 它可简化和演示面向 Windows 生成应用时的常见开发人员任务。
Windows 任务代码片段 包含即用代码的代码段,用于完成 UWP 应用开发人员关注的小而有用的任务。 这些代码段展示了常见问题的简单解决方案,以及有助于你实现新应用功能的简单脚本。
Win2D Win2D 是一个易于使用的 Windows 运行时 (WinRT) API,具有带 GPU 加速的立即模式 2D 图形呈现。 它同时提供给 C# 和 C++ 开发人员,并且利用了 Direct2D 的强大功能,从而与 XAML 和 CoreWindow 无缝集成。

后续步骤