用户界面技术

本主题简要介绍了用于为基于 Windows 的应用程序开发 UI 的 Microsoft 技术。 它提供了帮助确定是否使用特定技术所需的信息,并确定了在哪里可以找到有关该技术的更多信息。

本主题介绍了以下技术:

非托管应用程序的用户界面技术

本部分介绍用于为非托管 Windows 应用程序开发 UI 的 Microsoft 技术。 这些技术适用于熟悉 WindowsAPI 编程概念以及使用 Microsoft Windows 软件开发工具包 (SDK) 的经验丰富的 C/C++ 开发人员。 一些技术具有额外的先决条件,例如图形编程问题的知识或熟悉组件对象模型 (COM) 编程的基础知识。

Windows 控件

Windows 控件是与另一个窗口(通常是客户端窗口或对话框)结合使用的用户界面元素,使用户能够与应用程序交互。 构成传统基于 Windows 的应用程序 UI 的许多元素都是 Windows 控件,包括菜单、滚动条、按钮、列表框、树视图等项。

所有版本的 Windows 都支持 Windows 控件。 但是,由于支持控件的运行时组件随着时间的推移而不断发展,因此在较晚版本中引入的一些控件和特性在较早版本中不受支持。 应用程序需要检测版本,并仅使用可用功能。

如果要为在各种 Windows 版本上运行的基于 Windows 的非托管应用程序创建传统 UI,则应使用 Windows 控件。

有关详细信息,请参阅 Windows 控件

视觉样式

视觉样式是控件外观的规范。 例如,视觉样式可以定义控件的整体外观,并使软件开发人员能够配置这些控件的可视化界面,以便与应用程序的外观协调。 此外,视觉样式为所有基于 Windows 的应用程序提供一种机制,以标准化应用程序的外观。

Windows XP 及更高版本支持视觉样式,它们仅影响标准 Windows 控件和 Microsoft Win32 通用控件的外观。

如果需要更改标准 Windows 控件和通用控件的外观以匹配应用程序 UI 的外观,则应使用视觉样式。

有关详细信息,请参阅视觉样式

Windows 功能区框架

Windows 功能区框架是适用于基于 Windows 的应用程序的丰富命令演示系统。 它由一个功能区命令栏和一个上下文菜单系统组成,该命令栏通过应用程序窗口顶部的一系列选项卡显示应用程序的主要功能。 以下 Windows 版本支持 Windows 功能区框架:

  • Windows Vista Service Pack 2 (SP2) 和 Windows Vista 平台更新
  • Windows 7 及更高版本
  • Windows Server 2008 R2
  • Windows Server 2008 Service Pack 2 (SP2) 和 Windows Server 2008 平台更新

如果要实现一个命令 UI 来替代传统 Windows 应用程序的分层菜单、工具栏和任务窗格,则应该使用 Windows 功能区框架。

Windows 功能区框架适用于精通 COM 编程的开发人员。

有关详细信息,请参阅 Windows 功能区框架

Windows 动画管理器

Windows 动画管理器通过提供强大的动画引擎和标准化编程界面来支持 UI 元素的动画制作。 该平台简化了 UI 动画序列的开发和维护,使开发人员能够实现一致且直观的 UI 动画。 Windows 动画可以与任何图形平台一起使用,包括 Direct2D、Microsoft Direct3D 或 Windows GDI+。

Windows 动画框架在 Windows Vista 上受支持,包括针对 Windows Vista 的平台更新Windows Vista SP2 和针对 Windows Vista、Windows 7 及更高版本的平台更新。

如果要将动画序列添加到基于 Windows 的非托管应用程序的 UI,则应使用 Windows 动画管理器。

有关更多信息,请参阅 Windows 动画管理器

桌面窗口管理器

桌面窗口管理器 (DWM) 是支持桌面组合的 Windows 运行时组件,这是 Windows Vista 中引入的一项功能。 通过桌面合成,DWM 可以在 UI 中启用视觉效果,例如玻璃窗口框架、3D 窗口过渡动画、Windows Flip 和 Windows Flip3D,以及高分辨率支持。

DWM 公开了一个 API,用于控制与桌面合成关联的许多视觉效果。 例如,应用程序可以显示缩略图、将半透明和模糊效果应用于顶级窗口的工作区、控制窗口的非客户端区域中使用的透明度和转换效果等。

Windows Vista 和 Windows Server 2008 支持 DWM。

如果应用程序需要访问和控制与桌面合成关联的视觉效果,则应使用 DWM。

有关详细信息,请参阅桌面窗口管理器

Windows 自动化 API

Windows 自动化 API 可帮助开发人员创建可供尽可能广泛的受众访问的应用程序,包括视力、听力或运动残障人士。 API 的工作原理是公开构成应用程序用户界面的元素的相关信息。 屏幕阅读器等辅助技术应用程序可以使用信息以残障人士可使用的方式呈现 UI。

Windows 自动化 API 由两个单独的 API 框架组成,即 Microsoft Active Accessibility 和 Microsoft UI Automation。 Microsoft Active Accessibility 是一种旧式 API,在 Windows 95 中作为平台插件引入。 UI 自动化是 Microsoft Active Accessibility 的继任者,也是 UI 自动化规范的 Windows 实现。

Windows XP 和 Windows Server 2003 内置了对 Microsoft Active Accessibility 的完全支持。 Windows NT 4.0 Service Pack 6 (SP6) 及更高版本以及 Windows 98 上也支持 Microsoft Active Accessibility。 以下操作系统支持 UI 自动化:Windows XP、Windows Server 2003、Windows Server 2003 R2、Windows Vista、Windows 7、Windows Server 2008 和 Windows Server 2008 R2。

如果应用包含自定义控件或其他自定义 UI 功能,则应使用 Windows Automation API 来确保完全可访问自定义控件和功能。 通常,开发人员需要对 COM 对象和接口、Unicode 和 Windows API 编程有中等程度的了解。

有关详细信息,请参阅 Windows Automation API

语音 API

Microsoft 语音 API (SAPI) 在应用程序和语音引擎之间提供了一个高级接口。 SAPI 实现控制和管理各种语音引擎的实时操作所需的所有低级别详细信息。

SAPI 引擎的两种基本类型是文本转语音 (TTS) 系统和语音识别器。 TTS 系统使用合成语音将文本字符串和文件合成为语音音频。 语音识别器将人工语音音频转换为可读文本字符串和文件。

如果希望实现一个 UI,除了键盘、鼠标和显示器等标准输入设备之外,还允许用户通过 TTS 和语音识别与应用程序进行交互,那么应该使用 SAPI。

有关详细信息,请参阅 Microsoft 语音 API (SAPI) 5.4

放大 API

放大 API (MAPI) 用于放大屏幕的部分,并应用颜色效果和其他转换。 此 API 主要用于辅助技术应用程序,这些应用程序可放大屏幕部分,使其更易于查看。

Windows Vista、Windows 7、Windows Server 2008 和 Windows Server 2008 R2 支持MAPI。 它适用于熟悉图形编程概念的开发人员。

有关详细信息,请参阅放大 API

资源编译器

Microsoft Windows 资源编译器是一种应用程序开发工具,用于将 UI 和其他资源添加到基于 Windows 的应用程序。 资源是应用程序使用的任何不可执行的数据,包括对话框、菜单、字符串、光标、图标、位图等。 资源编译器包含在 Microsoft Visual Studio 和 Windows SDK 中。

有关详细信息,请参阅资源编译器

托管应用程序的用户界面技术

本部分介绍用于为在 .NET Framework 上下文中运行的托管 Windows 应用程序开发 UI 的 Microsoft 技术。 有关详细信息,请参阅 .NET 开发

Windows 窗体

Windows 窗体是一个图形应用程序编程接口,用于创建基于 .NET Framework 的托管 Windows 应用程序。 在 Windows 窗体中,窗体是一个可视图面,可以在该图面上向用户显示信息,并通过它接收来自用户的输入。

通过向窗体添加控件并开发对用户操作(如鼠标单击或按键)的响应,可以构建 Windows 窗体应用程序。 控件是离散的 UI 元素,用于显示数据或接受数据输入。 Windows 窗体包含各种可以向窗体添加的控件:显示文本框、按钮、下拉框、单选按钮甚至网页的控件。 Windows 窗体还支持创建自定义控件。

有关详细信息,请参阅 Windows 窗体

Windows Presentation Foundation

Windows Presentation Foundation (WPF) 是 Windows 窗体的继任者。 WPF 是一种演示系统,用于在基于 Windows 的客户端应用程序和浏览器托管的应用程序中生成和呈现用户界面。 WPF 的核心是一个与分辨率无关且基于矢量的呈现引擎,旨在充分利用现代图形硬件。 WPF 通过一套完善的应用程序开发功能对该核心进行了扩展,这些功能包括可扩展应用程序标记语言 (XAML)、控件、数据绑定、布局、二维和三维图形、动画、样式、模板、文档、媒体、文本和版式。

WPF 包含在 .NET Framework 中,因此你可以生成整合其他 .NET Framework 类库元素的应用程序。 WPF 在 Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2 上受支持,也可用于 Windows XP Service Pack 2 (SP2) 和 Windows Server 2003。

有关详细信息,请参阅 Windows Presentation Foundation

Silverlight

Microsoft Silverlight 是一个功能强大的开发平台,用于为 Web、桌面和移动设备创建富媒体应用程序和业务应用程序。

基于 .NET Framework、免费的 Silverlight 插件适用于多个浏览器、设备和操作系统,为 Web 带来新的交互性。 Silverlight 具有广泛的布局和样式选项、强大的通信协议、可靠的数据访问以及对用户交互和高清媒体的支持,有助于创建快速、流畅且直观丰富的客户体验。 Silverlight 应用程序可以使用 Microsoft Web 平台、Visual Studio 和 Expression Studio 快速开发。

有关详细信息,请参阅 Microsoft Silverlight

Expression Blend 3 + SketchFlow

Expression Blend 3 + SketchFlow 是一种可视化工具,用于为 WPF 和 Silverlight 桌面和 Web 应用程序设计、原型设计和创建复杂的用户界面。 可以通过绘制形状、绘制按钮和列表框等控件、使应用程序的各个部分对鼠标单击和其他用户输入做出响应,以及将所有内容设置为自己独有的样式来构建应用程序。

有关详细信息,请参阅使用 SketchFlow 进行原型制作

托管应用程序的 UI 自动化

UI Automation 是一个适用于 Windows 的辅助功能框架,可在所有支持 WPF 的操作系统上使用。

UI Automation 提供对桌面上大多数 UI 元素的编程访问,使屏幕阅读器等辅助技术产品能够向最终用户提供有关 UI 的信息,并通过标准输入以外的方式操作 UI。 UI 自动化还使自动测试脚本能够与 UI 交互。

有关详细信息,请参阅托管应用程序的 UI 自动化