实现用户界面

本节介绍与实现 Windows 应用程序的用户界面相关的一些任务。

原型

用户界面 (UI) 应根据用户分析步骤中确定的用户方案和要求列表进行设计。

原型可以像铅笔草图一样简单,也可以像交互式屏幕模型一样复杂。 保留之前的所有工作,因为在向利益相关者展示所考虑的替代方案并解释其被丢弃的原因时,这些工作可能会很有用。

尽量将此步骤限制为最多两个或三个原型。 原型不一定详尽无遗;只需要有效地模拟使用真实应用程序的体验。

演示原型并跟踪用户反馈,以帮助确定总体可用性趋势。 如果可能的话,丢弃最不成功的原型,并将尽可能多的有用反馈纳入一个或多个剩余的原型中。 在时间和资源允许的情况下重复此过程。

有各种原型制作工具可用,包括 Microsoft Expression Studio 3 中的 SketchFlow、Microsoft Visual Studio 中的布局编辑器,甚至 Microsoft Paint。

构造

当实现应用程序的用户界面时,请考虑以下事项:

  • 命令结构

    确定是实现基于菜单和工具栏的传统命令结构,还是实现基于 Windows 功能区框架的替代命令结构。 有关详细信息,请参阅菜单工具栏Windows 功能区框架

  • Windows 和对话框

    在 UI 设计和原型工作的基础上,实现应用程序窗口,包括主窗口、子窗口、对话框和消息框。 请遵循 UX 指南,确定要在窗口和对话框中使用的样式和控件。 有关详细信息,请参阅 Windows对话框Windows 控件

  • 自定义控件

    只有当无法从标准 Windows 控件中获得所需的功能时,才创建新的自定义控件。 新的自定义控件的开发成本非常高,并且需要额外的工作才能访问它们。 如果应用程序需要自定义控件,请确保它们充分暴露给辅助技术。 有关详细信息,请参阅自定义控件Windows Automation API

  • 支持标准用户输入设备

    大多数 Windows 应用程序都需要支持用户通过键盘和鼠标进行输入。 单独通过键盘导航和访问所有应用程序功能的能力对于有视觉障碍或行动不便的用户来说尤其重要。 有关详细信息,请参阅用户输入辅助功能工程软件电子书

  • 视觉样式、动画和视觉效果

    Windows 包括几种技术,你可以使用这些技术来增加视觉兴趣,并将 UI 与其他应用程序的 UI 区分开来。 其中包括指定控件的视觉样式、向 UI 元素添加动画以及在 UI 中实现各种视觉效果。 有关详细信息,请参阅视觉样式Windows 动画管理器桌面窗口管理器

简化

成功的用户体验取决于开发人员在设计过程中的方法、视角和假设。 要对目标用户如何使用应用程序有一个基本的了解,就需要具备开阔思维的能力,而不是局限于满足开发人员的需求。 项目开始时投入时间、精力和研究将在项目结束时获得回报。

减少、重用、整理

功能只有在实际使用时才能改进产品。 在许多情况下,功能的激增可能会带来复杂性,因为添加了更多的图标、菜单项、工具栏和对话框,这会影响效率和生产力,而不是增加价值。

最好的 UI 是没有 UI

UI 意味着用户必须与应用程序交互才能实现某些事情。 在理想情况下,无需交互。 从用户的角度来看,它只是起作用。 如果可以添加一个安全地消除用户交互的功能,则会显著改善用户体验。

UI 越少越好

在许多情况下,不可能完全从用户体验中删除 UI 交互。 然而,应用程序所需的用户交互越少越好。

确定用户将使用应用程序执行的最常见和最重要的活动,并使这些功能在 UI 中最突出。 将其他功能和活动从视觉上、层次上或通过可选的应用程序设置和用户首选项降低到较低的位置。

  • 替换而不是添加

    UI 守恒规则规定,只有当你可以拿走一些东西时,才能添加一些东西。 这条规则迫使开发人员通过考虑新功能对整个用户体验的影响来批判性地思考该功能。

    新功能不应该因为是新功能而被推广:不要把营销和可用性混为一谈。 要帮助用户在您的产品中找到新功能,请在帮助菜单中添加一个项目,该项目描述自上一版本应用程序以来发生的更改。

  • 用户是有限的资源

    任何时候公开的功能越多,用户就越难以找到他们需要的功能。

  • 中断是不礼貌的

    当应用程序显示对话框时,它会强制用户停止他们正在执行的任何操作,并注意其他内容。 如果可能的话,通过避免错误情况和其他破坏性的用户体验,完全消除对对话框的需求。 有关消息指南的详细信息,请参阅消息

  • 简单而功能强大

    简单的 UI 并不意味着缺少功能。 通常,更简单的 UI 的结果是缩短了学习曲线,提高了效率,提高了生产力。 这使用户能够提高对应用程序的熟练程度。

一致的 UI 就是好的 UI

通常,建议在整个应用程序 UI 中努力保持一致性。 提供一致的 UI 使用户能够在更短的时间内更加熟练地使用应用程序。 他们能够将现有的应用程序知识应用于不同的情况,并自信地使用不熟悉的功能。

在极少数情况下,一致性不会给用户带来任何好处,甚至会降低用户体验。 如果一致性会削弱完成任务的能力,请不要使 UI 保持一致。 一致性本身并不能保证可用性。 认为界面的一致性会带来好的设计是错误的。

例如,视频游戏 UI 通常是特定于游戏类型的。 试图设计一个适用于两款专业游戏的通用 UI,一款需要方向盘,另一款需要操纵杆和按钮,这两款游戏都不太可能成功。 充其量,可能会达成一个对双方都不好的中间立场。

掌握关于如何使用事物的良好数据是做出这一决定的关键。 清楚每种权衡的利弊(速度与可靠性、学习方便性与专家熟练度、全局一致性与局部优化),并就整个产品的功能做出最佳决策。

设计就是选择如何失败:优化一个方面意味着在另一个方面失败。 良好的 UI 设计的关键是能够确定应用程序的哪些特征是最重要的,哪些特征可以被删掉。