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