用户界面和输入
本文将概述 Microsoft 目前维护的 Windows UI 框架,并将其功能进行比较。
Microsoft 会同时生成 UI 框架和应用平台。 应用平台通常包括 UI 框架,而 UI 框架既可是独立的(不随应用平台一起提供),也可与多个应用平台一起使用(请参阅选择应用平台)。
此处讨论的框架包括适用于Windows App SDK (WinUI 3) 和 UWP (WinUI 2)、Windows Presentation Foundation (WPF) 以及 Windows 窗体 (WinForms) 的 WinUI。
用户界面基础知识
在生成新式 Windows 应用时,可以从一系列 UI 框架中进行选择。 UI 框架为应用提供内置的控件、样式、动画、输入处理等。
为 Windows 应用创建用户界面涉及五个主要组件。 这些组件通常内置在每个 UI 框架中。
-
控件是显示内容或实现交互的 UI 元素。 控件是用户界面的构建基块。
下面是可在 UWP、WinUI 2 和 WinUI 3 中使用的按钮控件示例。 将此控件放入应用后,它会自动接收 UI 框架提供的默认设计。
样式由颜色、排版、图标、Fluent 材料等构成,可以在整个应用设计中使用这些元素,以创建真正独特的体验。
下面是一个可在 WinUI 2 和 WinUI 3 中使用的名为 Acrylic 的样式组件示例。 Acrylic 是一种画笔,可以在应用内部的图面上使用,也可以用作应用的背景。 它提供半透明的纹理。
-
最终用户可以通过不同的方法来与应用交互,并为应用提供输入(例如选择或键入)。 下面是一些输入示例:
- 鼠标
- 触控
- 游戏板
- 笔
- 键盘
- Surface Dial
- 触摸板
- 语音
-
最终用户在各种设备上访问 Windows 应用,而 UI 框架可能仅支持其中的某些设备。 可运行 Windows 应用的常见设备包括:
- 电脑(通常称为“台式机”,但也包括笔记本电脑)
- 平板电脑
- HoloLens
- Xbox
- Surface Hub
-
内置动画可以真实地为应用提供精美的感观,并提供与整个 Windows 中第一方应用的一致性。
UWP、WinUI 2 和 WinUI 3 中的内置动画的一个例子是最终用户在浅色和深色模式之间切换时显示的动画。 当最终用户为其整个电脑切换模式时,应用的 UI 也会通过过渡动画自动更新。
-
为了确保每个用户都能愉悦地使用你的应用,必须考虑辅助功能。
UI 框架通过有针对性的键盘行为、屏幕阅读器支持等功能,在控件和样式中提供内置的辅助功能。 许多框架还提供 API 用于在自定义控件中执行无障碍操作,例如与屏幕阅读器交互。
UI 框架
Microsoft 发布的每个 UI 框架都有独特的功能,遵循不同的设计语言,并为最终用户提供不同的体验。 本部分将对你在开始生成应用时可选择的所有主要 UI 框架进行比较。
下表简要汇总了这些 UI 框架的一些主要功能。 有关每个框架的更多详细信息,请在以下选项卡中进一步导航。
功能 | Windows App SDK (WinUI 3) | 适用于 UWP 的 WinUI 2 | WPF | WinForms |
---|---|---|---|---|
支持的语言 | C#/.NET 6 及更高版本、C++/WinRT | C#/.NET Native、C++/WinRT、C++/CX、VB | C#/.NET 6(及更高版本)和 .NET Framework、C++/CLI (Managed Extensions for C++)、F#、VB | C#/.NET 6(及更高版本)和 .NET Framework、C++/CLI (Managed Extensions for C++)、F#、VB |
支持的设备 | 电脑(包括笔记本电脑和平板电脑),即将支持所有 Windows 10 设备 | 所有 Windows 10 设备(电脑、平板电脑、HoloLens、Xbox、Surface Dial 等) | 台式电脑和笔记本电脑 | 台式电脑和笔记本电脑 |
支持的输入 | 支持所有 Windows 10 输入 | 支持所有 Windows 10 输入 | 鼠标和键盘 | 鼠标和键盘 |
支持的 Windows 操作系统版本 | Windows 10 版本 1809 或更高版本 | Windows 10 版本 1703 或更高版本 | Windows XP 或更高版本 | Windows XP 或更高版本 |
WebView 支持 | 基于 Chromium 的 WebView2 | 非 Chromium WebView | 即将支持 WebView2 | 即将支持 WebView2 |
开放源 | 即将推出 | 是 | 是(仅限 .NET 6 及更高版本) | 是(仅限 .NET 6 及更高版本) |
有关其中每个 UI 框架的详细信息,请参阅以下选项卡上的信息。
Windows App SDK (WinUI 3)
对于大多数新的 Windows 应用,建议使用 WinUI 和 Windows App SDK (WinUI 3) 来生成用户界面。 WinUI 3 使用最新的用户界面 (UI) 模式提供一致、直观且易于访问的体验。
WinUI 3 与 Windows 操作系统完全分离,并作为 Windows App SDK 的一部分交付。该 SDK 是代表了 Windows 应用开发平台的下一次演进的一组工具和组件。
WinUI 3 是最新一代的 WinUI。 WinUI 2 和 3 具有大量相同的控件、样式和其他 UI 基础知识(请参阅 WinUI 2 与 WinUI 3 的比较)。
WinUI 3 支持的关键应用方案
- 需要在各种新式设备上运行的、接受各种新式输入的新式 Windows 应用
- 用 C++ 编写的桌面/Win32 应用
- 需要利用 DirectX 和 Win2D 的图形密集型应用或游戏
- 包含大量集成式 Web 内容的、需要高性能的应用
- 寻求提供“完美适应”Windows 操作系统和其他第一方 Windows 应用的体验的应用
有关 WinUI 3 的有用文档
- 概述:WinUI 3
- 入门:创建第一个 WinUI 3 项目
- 编写 XAML:XAML 平台
- API 参考:WinUI API 参考
- 控件:控件概述
- 输入:输入和交互
- 运动:Windows 应用的运动
- 辅助功能:Windows 应用的可用性
- 示例:WinUI 3 库应用