实现桌面应用的现代化

Windows 11 和 Windows 10 提供的许多功能可以用来在桌面应用中提供新式的体验。 你可以按照自己的进度,将大多数此类功能作为模块化组件在桌面应用中使用,不需为其他平台重新编写应用程序。 可以选择要采用的 Windows 功能,增强现有的桌面应用。

本主题介绍目前可以在桌面应用中使用的功能。 有关演示如何实现现有应用的现代化以使用本主题中所述的许多功能的教程,请参阅现代化 WPF 应用教程。

注意

在将桌面应用迁移到 Windows 10 或更高版本的过程中,你是否需要帮助? 应用保证服务为需要将应用移植到 Windows 10 及更高版本的开发人员提供直接的免费支持。 该计划适用于所有 ISV 和合格的企业。 若要更详细地了解相关资格和计划本身,请访问 /fasttrack/win-10-app-assure-assistance-offered。 若要立即开始体验,请提交请求

应用 Windows 11 功能

Windows 11 标志着 Windows 操作系统在视觉上的一次进化,并引入了改进应用基础功能和用户体验的新功能。 其中许多功能默认对应用启用,但是桌面应用可能需要更新才能与一些新功能集成。 这些功能包括顶层窗口圆角设置、贴靠布局和文件资源管理器中更新的上下文菜单。

有关详细信息,请参阅在 Windows 11 上,为增强应用功能而可以执行的最常见的 11 种操作

Windows 应用 SDK

Windows 应用 SDK 是一组新的开发人员组件和工具,它们代表着 Windows 应用开发平台的下一步发展。 Windows 应用 SDK 提供一组统一的 API 和工具,可供 Windows 11 以及众多 Windows 10 版本上的任何桌面应用以一致的方式使用。 可以使用项目模板创建新的桌面应用(这些应用将 Windows 应用 SDK 与基于 WinUI 3 的 UI 一起使用),也可以在现有桌面应用中使用 Windows 应用 SDK。

有关详细信息,请参阅 Windows 应用 SDK

WinUI

WinUI 是适用于 Windows 桌面应用程序和 UWP 应用程序的本机用户体验框架。 WinUI 开始时是作为工具包提供的,为面向低端版 Windows 的 UWP 应用提供新版和更新版 WinRT XAML 控件。 最新版本 WinUI 3 的范围已扩大,现在是适用于 Windows 桌面应用的新式本机 UI 平台。

可通过以下方式在桌面应用中使用 WinUI:

有关详细信息,请参阅 WinUI

Windows 运行时 API

可以在 WPF、Windows 窗体或 C++ 桌面应用中直接调用许多 Windows 运行时 API,以便集成对用户来说焕然一新的体验。 例如,可以调用 Windows 运行时 API,以便将 Toast 通知添加到桌面应用。

有关详细信息,请参阅在桌面应用中使用 Windows 运行时 API

MSIX 部署

MSIX 是一种新式的 Windows 应用包格式,提供所有 Windows 应用(包括 UWP、WPF、Windows 窗体和 Win32 应用)的通用打包体验。 MSIX 汇集了 MSI、.appx、App-V 和 ClickOnce 安装技术的最佳方面,以便提供新式的可靠打包体验。

将桌面 Windows 应用打包到 MSIX 包中即可访问可靠的安装和更新体验、功能系统灵活的托管安全模型、对 Microsoft Store 的支持、企业管理以及许多自定义分发模型。

有关详细信息,请参阅从代码生成 MSIX 包

在运行时动态使用 MSIX 框架包

Windows 应用 SDK 和 Windows 11 OS 中的动态依赖项功能使应用能够运行时引用 MSIX 框架包。 此功能主要供未打包的桌面应用用来调用由 MSIX 框架包提供的 API。

有关详细信息,请参阅从桌面应用动态使用 MSIX 框架包

.NET

.NET(以前称为 .NET Core)支持 Windows 桌面应用,包括通过 Windows 应用 SDK 创建的 WinUI 3 应用(请参阅创建你的第一个 WinUI 3 项目)。 .NET 还支持 Windows Presentation Foundation (WPF)Windows 窗体 (WinForms) 应用。 你可以在 .NET 上运行新的和现有的 Windows 桌面应用并体验 .NET 提供的所有优势。

有关详细信息,请参阅 .NET 6 的新增功能

托管 WinRT XAML 控件(XAML 岛)

从 Windows 10 版本 1903 开始,可以将 UWP XAML 控件直接添加到与窗口句柄 (HWND) 关联的 WPF、Windows 窗体或 C++ 桌面应用中的任何 UI 元素。 这意味着,你可以将最新的 UWP 功能(例如 Windows Ink 和支持 Fluent Design System 的控件完全集成到 Windows 以及桌面应用的其他显示表面中去。 此开发人员方案有时称为“XAML 岛”。

有关详细信息,请参阅桌面应用中的 WinRT XAML 控件

在桌面应用中使用可视化层

现在可以在非 UWP 桌面应用中使用 Windows 运行时 API 来增强 WPF、Windows 窗体和 C++ 桌面应用的外观和功能,并充分利用只能通过 UWP 使用的最新 Windows UI 功能。 在需要创建自定义体验且这些体验超出可以通过 XAML 岛托管的内置 WinRT XAML 控件的范畴时,这很有用。

有关详细信息,请参阅使用可视化层实现桌面应用的现代化

适用于具有包标识的应用的其他功能

某些新式 Windows 体验仅适用于在运行时具有包标识的桌面应用。 这些功能包括一些 Windows 运行时 API、包扩展和 UWP 组件。 有关详细信息,请参阅需要包标识的功能

针对桌面应用优化的 WinRT XAML 控件

不管你是要构建专门面向桌面设备系列的 UWP 应用,还是要在 WPF、Windows 窗体或 C++ 桌面应用中使用 WinRT XAML 控件,均可利用下面这些全新的和更新的 WinRT XAML 控件。这些控件旨在提供可以与 Fluent Design System 配合使用的桌面优化体验。 这些控件是在 Windows 10 版本 1809(2018 年 10 月更新,或者版本 10.0.17763)中引入的。

控件 说明
MenuBar 为那些可能需要更多组织或分组功能(无法通过 CommandBar 来满足这些要求)的应用提供一种简单快速的方式来公开命令集。
DropDownButton 显示一个 V 形图标作为视觉指示器,表明其附加的浮出控件包含更多选项。
SplitButton 提供的按钮有两个部分,可以分别调用。 一个部分的行为类似于标准按钮,可以调用即时操作。 另一个部分调用浮出控件,该控件包含可供用户选择的其他选项。
ToggleSplitButton 提供的按钮有两个部分,可以分别调用。 一个部分的行为类似于可以打开或关闭的切换按钮。 另一个部分调用浮出控件,该控件包含可供用户选择的其他选项。
CommandBarFlyout 用于在 UI 画布的项上下文中显示常见用户任务。
ComboBox 现在可以将组合框设置为可编辑,这样用户就能输入控件中未列出的值。
TreeView 现在可以配置树视图,以便启用数据绑定、项模板和拖放功能。
DataGridView 用于在行和列中灵活地显示数据集合。 此控件在 Windows 社区工具包中可用。

新式桌面应用的其他技术

Microsoft Graph

Microsoft Graph 是一系列 API,这些 API 可以用来为组织和消费者构建与数百万用户的数据交互的应用。 Microsoft Graph 公开的 REST API 和客户端库可以用来访问以下服务的数据:

  • Azure Active Directory
  • Microsoft 365 Office 应用:SharePoint、OneDrive、Outlook/Exchange、Microsoft Teams、OneNote、Planner、Excel
  • 企业移动性和安全性服务:Identity Manager、Intune、高级威胁分析、高级威胁防护。
  • Windows 服务:活动和设备

有关详细信息,请参阅 Microsoft Graph 文档

自适应卡片

自适应卡片是一种开放式跨平台框架,可以通过一种常见且一致的方法跨设备和平台交换基于卡的 UI 内容。

有关详细信息,请参阅自适应卡片文档