Visual Studio 的复合模式

复合模式将交互和设计元素组合到不同的配置中。 Visual Studio 中与一致性相关的一些最重要的复合模式包括:

数据可视化

图表是聚合和可视化数据的可视化方式,用于增强决策能力。 他们可以帮助用户面对大量数据,但没有什么意义,了解值得关注的内容和可能需要执行的操作。

如果满足以下任一条件,用户将受益于图表:

  • 图表会帮助用户确定他们可以处理的任务吗?

  • 图表是否会使用户能够预测潜在更改的后果?

  • 图表是否会帮助用户发现趋势并确定模式?

  • 图表是否会允许用户做出更好的决策?

  • 图表是否会帮助回答用户在给定上下文中可能拥有的特定问题?

图表的常规规则

  • 明确标记数据。 没有解释的插图只是漂亮的图片。

  • 从零开始轴以避免倾斜比例。 线条长度和条形图大小是了解数据点之间的关系的重要视觉提示。

  • 创建图表,而不是信息图。 信息图是数据的艺术表示形式,其主要目标是视觉故事讲述。 图表可以(且应该)具有视觉吸引力,但让数据本身说话。

  • 避免倾斜、图片条形图、对比度哈希标记和其他信息图触摸。

  • 不要将 3D 效果用作装饰元素。 仅当用户真正理解信息的能力时,才使用它们。

  • 避免使用多行和填充,因为两种以上颜色会使这种类型的图表难以正确阅读和解释。

  • 请勿使用图表(或任何插图)作为理解概念或与数据交互的唯一手段。 这为有视觉障碍的用户带来了困难。

  • 不要将图表用作页面上的无端元素或装饰元素。 换句话说,如果图表不添加任何值或帮助用户解决问题,请不要使用它。

图表类型

Visual Studio 中使用的图表类型包括条形图、折线图、称为环形图或“圆环图”的修改饼图、时间线、散点图(也称为“簇状图”)和甘特图。 每种类型的图表都可用于传达不同类型的信息。

其他图表注意事项

Color

在 Visual Studio 中定义用于图表颜色的特定调色板。 调色板可用于主要色盲类型,即使用作非常窄的颜色切片,颜色也可以区分。 可以将这些颜色用于 UI 中任何类型的图表或图形的任意组合。 如果不需要许多不同的颜色,则无需使用所有七种颜色。 这些颜色未设计为与任何前景元素一起使用,因此不要将这些颜色的文本或字形放在这些颜色的顶部。 这些色调应硬编码,并在“工具>选项”下向用户自定义公开(请参阅“为最终用户公开颜色”)。

样本 Hex RGB
Swatch 71B252 #71B252 113,178,82
Swatch BF3F00 #BF3F00 191,63,0
Swatch FCB714 #FCB714 252,183,20
Swatch 903F8B #903F8B 144,63,139
Swatch 117AD1 #117AD1 17,122,209
Swatch 79D7F2 #79D7F2 121,215,242
Swatch B5B5B5 #B5B5B5 181,181,181

对象 UI 和速览

本部分提供上下文来查看(也称为代码速览视图),这是 Visual Studio 特有的对象 UI 类型。

  • 对象 UI 应为用户提供更多信息或交互性,而不会减去其主任务。

  • Visual Studio 中对象 UI 的主要模式称为“关注点的信息”。

  • Visual Studio 中的对象 UI 是内联 UI 或浮动 UI,也是持久 UI 或暂时性 UI。

    • 代码速览视图(Visual Studio 中的对象 UI 类型)内联且持久。

    • CodeLens 是 Visual Studio 中对象 UI 的一种浮动和暂时性

    了解一段代码的工作原理,或查找有关该代码的详细信息,通常需要开发人员切换上下文并转到其他内容或其他窗口。 这些上下文转变可能会造成干扰,因为如果用户离开主窗口,用户可能会失去对原始任务的关注。 此外,使原始上下文返回可能很困难,尤其是在切换窗口导致其他 UI 遮盖其原始代码时。

    对象上的 UI 遵循一种称为“关注点的信息”的模式。这些消息、弹出窗口和对话框为用户提供了其他相关信息,这些信息可添加澄清或交互性,而不会失去对主要任务的关注。 对象 UI 的示例包括当用户将指针悬停在通知区域中的图标上时显示的弹出窗口、拼写错误的单词下的红色波浪线以及 Visual Studio 2013 中引入的速览视图。

决策点

在 Visual Studio 中,有几种方法可以在关注点使用此信息模式。 选择正确的机制并采用一致、可预测的方式实现它对于整体体验至关重要。 否则,可能会向用户显示令人困惑或不一致的体验,这些体验会削弱内容本身的焦点。

主内容与详细信息内容之间的关系

注意点的信息用于显示用户关注的内容(主内容)和其他相关内容(“详细信息”内容)之间的关系。 在此模式中,详细信息内容与用户正在使用的内容明确相关,并且可显示在靠近主内容的地方。 在没有压倒性主内容的情况下无法汇总的补充信息或信息应遵循另一种模式,例如工具窗口。

  • 始终 在靠近主内容的位置显示详细信息内容。

  • 始终 确保详细信息内容仍使用户能够保持关注主内容。 通常,实现此目的的最佳方式是尽可能接近主内容呈现详细信息内容。 这可以通过在主内容旁的弹出窗口中呈现详细信息内容,或通过在主内容下方内联呈现详细信息内容来完成。

  • 切勿 在关注点使用将用户从主内容中移开的信息。 如果用户需要单独查看详细信息内容,请公开一个允许用户执行此操作的显式操作。

设计详细信息

确定对象 UI 是正确的选择后,有四个主要的设计注意事项:

  1. 持久性: 内容是否应为持久内容或暂时性内容? 用户是否希望使信息保持可见以引用或与之交互? 还是用户希望快速查看信息,然后继续执行其主要任务?

  2. 内容类型: 内容是信息性的、可操作的还是导航的? 用户是否需要有关主内容的其他详细信息? 用户是否需要完成影响主内容的任务? 或者用户是否需要定向到另一个资源?

  3. 指示器类型: 环境指示器是否有意义? 是否可以以有用方式汇总信息,并在没有压倒性主内容的情况下显示信息?

  4. 手势: 将使用哪些手势来调用和消除 UI? 用户如何显示详细信息内容并将其发送出去? 是否在添加手势(例如固定)以在暂时状态和持久状态之间切换?

    这四个决策点中的每一个都会对对象 UI 的主要组件产生影响。

对象上的 UI 组件

  1. 容器(内容演示者)类型

    • 浮动

    • 内联

  2. 内容类型

    • 信息性:可能是静态或动态的数据

    • 可操作:更改主内容的命令

    • 导航:将用户带到另一个窗口或应用程序的链接,例如 MSDN

  3. 笔势

    • 调用

    • 解雇

    • 寄托

    • 其他交互

  4. 持久性和提交模型

    • 暂时

    • Durable

    • 自动

    • 按需

  5. 环境指示器(可选)

    • 波浪线下划线

    • 智能标记图标

    • 其他环境指示器

容器(内容演示者)类型

有两个主要选项可用于在关注点显示内容:

  1. 内联: 内联演示者(如 Visual Studio 2013 代码编辑器中引入的速览视图)通过移动现有内容为新内容提供空间。

    • 如果希望用户需要花费大量时间引用或与呈现的内容交互,请首选 内联演示者。

    • 如果预期用户希望浏览显示的信息,请避免 内联演示者,然后继续执行其主要任务,但中断最少。

  2. 浮动: 浮动演示器将尽可能靠近所选内容的位置,但不更改现有内容的布局。 可以使用各种策略,例如,在最接近的可用空白处显示浮动内容面板,以使用所选符号。

    • 如果你希望用户希望查看你提供的信息,则首选 浮动演示者,然后继续执行其主要任务,但中断最少。

    • 如果希望用户需要花费大量时间引用或与呈现的内容进行交互,请避免 浮动演示者。

内容类型

有三种主要类型的内容可在任何对象 UI 容器内显示。 可以显示这些类型的信息的任意组合。 这三种类型是:

  1. 信息性: 大多数对象上的 UI 容器将显示某种信息性内容。 内容可以表示有关环境的当前状态的信息,也可以表示有关环境潜在未来状态的信息。 例如,它可用于显示特定命令(如重构)对现有代码的影响。

    • 始终 使用所显示信息的规范表示形式。 例如,代码应类似于代码,使用语法突出显示完成,并应遵循用户设置的任何字体和其他环境设置。

    • 始终 考虑支持对信息性内容执行的任何操作,如果同一信息显示为主内容,则这些操作是可能的。 例如,如果在对象 UI 容器中呈现现有代码,强烈建议支持浏览和修改该代码。

    • 如果呈现表示潜在未来状态的信息性内容,请始终 考虑使用不同的背景色。

  2. 可操作:某些对象上的 UI 容器将提供对主内容执行某些操作的功能,例如执行重构操作。

    • 始终 将可操作命令与信息内容分开放置。

    • 在适当的时候始终 启用和禁用操作。

    • 始终 参考用于在对话框中表示命令的标准准则。

    • 始终 将对象 UI 容器中公开的操作数保持在绝对最小值。 与对象上的 UI 交互应该是一种轻量级、快速的体验。 用户不必消耗管理对象 UI 容器本身的能量。

    • 始终 考虑关闭或关闭对象 UI 容器的方式和时间。 最佳做法是,在调用该操作时,结束主内容和详细信息内容之间的对话的任何操作也应关闭对象 UI 容器。

  3. 导航: 某些对象上的 UI 容器包括将用户带到另一个窗口或应用程序的链接,例如在用户的 Web 浏览器中打开 MSDN 文章。

    • 始终 使用“打开”预先添加任何导航链接,以便用户不会因为导航到其他内容而感到惊讶。

    • 始终 将导航链接与可操作链接分开。

环境指示器(可选)

环境指示器可能很微妙,包括来自代码其余部分的对比色显示的文本,或明显的,包括波浪线下划线和智能标记图标等刻度符号。 环境指示器传达其他相关信息的可用性。 理想情况下,即使不需要用户与他们交互,它们也能提供有用的信息。

  • 始终 定位环境指示器,使其不会分散注意力或使用户不知所措。 如果无法以这种方式定位环境指示器,请考虑另一种解决方案。

  • 始终 将环境指示器与它相关的内容尽可能接近。

  • 始终 尝试创建一个指标来汇总它提供的信息。 请考虑提供可用的数据项数(例如,“3 引用”而不是“引用”),或考虑一些其他方法来汇总数据。

    • 如果无法始终计算和显示指示器的数据,请立即考虑在计算值时提供渐进式反馈。 例如,请考虑对反映可用数据的更新的更改进行动画处理,这与 电话随着未读电子邮件数量增加而刷新 Windows 上的电子邮件动态磁贴的方式类似。
  • 永远不要 为给定内容添加比用户合理接受的指标多。 环境指示器应该很有用,而无需用户进行任何交互。 如果指标需要溢出和其他管理控制来查看它们,则指标会失去其氛围。

笔势

允许用户保持对主内容的关注的一个关键方面是支持正确的手势来打开和消除其他详细信息内容。

  • 始终 要求用户执行一些显式手势以打开其他内容。 常见的打开手势包括:

    • 悬停: 工具提示或非交互式信息性内容

    • 显式命令: 内联演示者

    • 双击环境指示器: CodeLens 弹出窗口

  • 每当用户按下 Esc 键时,始终 消除详细信息内容。

  • 始终 考虑对象 UI 的上下文。 对于允许在容器内交互的内容演示者,请仔细考虑是否显示有关悬停的其他信息,这可能会对用户的工作流造成干扰。

  • 切勿 在悬停时显示显示为可编辑或邀请用户交互的内容。 如果用户尝试将光标移到详细信息内容上,则此行为可能会令用户沮丧,因为工具提示的标准行为是在光标不再位于生成它的主内容上时立即消除。

选择模型

选择模型是用于指示和确认用户界面中一个或多个相关对象的操作的机制。 本主题讨论 Visual Studio 文档编辑器中的选择交互模式:文本编辑器、设计图面和建模图面。

用户必须能够向 Visual Studio 指示他们正在处理的内容,并且 Visual Studio 必须以可预测方式响应用户有关其运行方式的反馈。 用户与用户界面之间的差异或错误沟通可能会导致用户不注意到操作,这可能会产生意外的后果。 通常,在用户看到缺少或已更改某些内容之前,不会注意到错误。 因此,选择模型是用户界面设计中最关键的部分之一。 尽管 Visual Studio 中的选择模型与 Windows 一致,但有轻微的变化。

在 Visual Studio 中,与 Windows 中一样,选择模型因交互发生的上下文而异。 选择可以发生在四种类型的对象中:

  • 文本

  • 图形对象

  • 列表和树

  • 网格

    在这些对象中,有三种类型的选择:

  • 系列

  • 脱节

  • 区域

范围

选择的最重要组成部分是确保用户知道他们在哪个窗口中工作(激活)以及焦点所在的位置(选择)。 Visual Studio 扩展 Windows 中的窗口管理功能,但激活方案相同:与窗口交互会将焦点置于窗口。 Visual Studio 有两个用于激活的指示器:一个用于文档窗口,一个用于工具窗口。

对于文档窗口,活动窗口由指向正面的文档窗口选项卡指示,并更改其背景色:

Active tab selection in Visual Studio

活动选项卡选择

对于工具窗口,活动窗口由工具窗口标题栏区域颜色的更改指示:

Active tool window selection in Visual Studio

显示节点的主要选择的活动工具窗口

Inactive tool window selection in Visual Studio

“非活动”工具窗口,显示节点的潜伏选择

窗口处于活动状态后,会根据指南本部分中概述的选择模型指示其焦点。

上下文

Visual Studio 旨在保留强大的上下文概念,从而跟踪用户工作的位置。 只有一个窗口处于活动状态,无论是工具窗口还是文档窗口。 但是,最顶层的文档窗口始终保留潜在选择。 尽管焦点可能位于工具窗口中,但上次处于活动状态的文档窗口显示所选内容,即使处于非活动状态也是如此。 这样做是为了在编辑的文档中保留用户的上下文,并显示 Visual Studio 已保留其状态,以便他们可以在工具窗口和文档窗口之间无缝返回和移动。

文本选择

严格为文本的 Visual Studio 编辑器(如内置文本编辑器)使用与 MSDN 上的 Windows 用户体验交互指南的鼠标和指针页中所述的相同文本选择模型和外观。 文本编辑器中的输入焦点由名为插入点的垂直条指示。 插入点是一个粗细的像素,颜色是其后面的任何出现的反数。 它根据控制面板键盘小程序“速度”选项卡中的光标闪烁速率设置速率闪烁。

连续和不连续的选择

文本编辑器中的选择仅连续。 不允许不相交的文本选择,但应在图形对象编辑器中处理。 当用户的鼠标指针位于文本区域上时,光标将更改为 I-beam。 单击将插入点放在文本编辑器中的单击位置。 按住鼠标按钮可启动选择突出显示,并释放鼠标按钮以结束选择突出显示。

区域选择(框选择)

Visual Studio 支持文本编辑器中的区域选择,这称为框选择。 框选择允许用户选择不遵循常规文本流的文本区域。 与标准文本选择一样,所选内容必须连续。 使用鼠标拖动时按住 Alt 键来启动框选择。 还可以通过在使用箭头键指示所选区域的同时按住 Alt 和 Shift 键来启动框选择。 框选择使用普通选择突出显示,并显示插入点光标闪烁在选定区域末尾。

Regional (box) selection in Visual Studio

Visual Studio 中的区域(框)选择

文本选择外观

可以在编辑器中自定义用于活动和非活动选择的颜色。 若要自定义编辑器的视觉外观,用户可以转到“工具>选项”,然后在“环境>字体和颜色>文本编辑器”下查看。

图形选择

交互

图形对象选择可能比较复杂,具体取决于多种因素:

  • 编辑器的主要选择模型。 包含图形对象的编辑器还可用于编辑文本或网格。 例如,编辑器可能是一个基于文本的编辑器,也支持放置图形对象,例如 Visual Studio XAML 设计器。 支持多个对象类型可能会影响用户选择由不同类型的对象组成的组的方式。

  • 支持主要和辅助选择状态。 编辑器可以提供主要和辅助选择状态,以便可以一致地编辑对象、彼此对齐、重设大小等。

  • 就地编辑支持。 编辑器还可以允许编辑其图形对象的内容。 例如,矩形形状还可能包含用户可更改的内部文本。 此外,该文本可以居中或对齐。 就地编辑涉及更详细的用户交互级别,因此需要一组适当的视觉提示,以便向用户显示状态信息。

鼠标交互

输入 结果
单击未选择的对象 选择对象并显示虚线和选择句柄(如果对象大小可调整)。
单击所选对象 如果对象支持就地编辑,则激活就地编辑。 单击对象外部会停用就地编辑模式。
双击对象 打开对象后面的代码进行编辑,并可能插入默认事件处理程序(如果适用)。
指向对象 更改指向移动光标的指针。 对象的外观(如其亮度或颜色)可能会更改。
指向选择句柄 将指针更改为调整大小光标。 对于支持旋转的对象,某些选择句柄可能会将指针更改为旋转光标,因为指针的位置不同(例如,相对于选择句柄移动得更远)。
拖动 即使之前未选择该对象,也会更改指向移动光标的指针并移动对象。
编辑器失去焦点 停用就地编辑模式,尽管对象在上次操作/选择状态期间保留内容和外观。
对象选择 由边框、虚线或其他视觉上不同的处理指示,以突出显示对象的边界。
调整所选对象的大小 由选择句柄指示。

可调整大小的对象有 8 个控点,表示可以调整大小的每个方向。 如果对象只能在特定方向调整大小,则可以使用更少的句柄。 当用户将对象调整到八个句柄不交互的位置时,可以使用四个句柄。 句柄大小应与窗口边框和边缘指标相关联,并使用 GetSystemMetrics API 函数调整大小,以与显示分辨率成比例调整大小。

Resize handles
旋转所选对象 Rotate handles

键盘交互

输入 结果
选项卡 在编辑器中对象的逻辑顺序之间移动焦点指示器。 这可以是从左到右或从上到下, 具体取决于 TabIndex (或等效)属性值、对象创建顺序以及编辑器的总体用途。 Shift+Tab 将反转焦点指示器的方向。
空格键 在保持击键时激活平移模式。 需要其他鼠标输入才能平移视区位置。
Ctrl+空格键 在保持击键时激活缩放模式。 增加和减少缩放因子需要额外的鼠标输入。
Ctrl+Alt+减号 将缩放因子减少一个级别。
Ctrl+Alt+加号 将缩放因子增加一个级别。
Shift OR Ctrl 将对象添加到选择组。 Ctrl 还允许从选择组单独删除对象。
Enter 为对象执行默认命令(通常为“打开”或“编辑”)。
F2 为对象激活就地编辑。
箭头键 将所选对象向按下箭头键的方向移动(例如,一次 1 个像素)
Ctrl+箭头键 按箭头键方向移动所选对象(例如,一次 10 像素)
Shift+箭头键 按相应方向调整所选对象的大小(例如,一次 1 像素)
Ctrl+Shift+箭头键 按相应方向调整所选对象的大小(以更大的增量(例如,一次 10 像素)

当用户就地编辑控件时,使用用户输入自动调整对象大小可能有意义。 例如,如果用户编辑标签控件,则标签应增长以显示用户刚刚键入的文本。 如果未执行此操作,用户必须在编辑文本后手动调整控件的大小。 如果用户拥有大量控件,这将成为一项不生产的任务。

图形容器

在某些情况下,图形编辑器为其他图形对象(如 HTML 设计器中的Windows 窗体面板控件或网格布局控件)提供容器。 如果编辑器为其他图形对象提供容器,则以下选择模型应仅用于容器(容器中的对象遵循上述标准模型):

输入 Result
单击容器 选择容器对象,而无需直接选择任何包含的对象。 可以使用标准鼠标和键盘输入(如上所述)移动和/或调整容器大小。 包含的对象相对于容器移动,但包含的对象不会调整大小,除非它们也直接被选中。
将鼠标悬停在容器的边界区域上 将鼠标转换为移动光标,指示可以移动容器。
拖动容器的边界区域 将鼠标更改为移动光标,并移动容器(以及包含的对象)。 无需先单击一下即可移动容器。
在容器中单击对象 取消选择容器(如果已选中),并仅选择单击的对象。
Shift+单击或 Ctrl+单击包含的对象和/或容器 将单击的对象添加到现有选择或选择组。 如果单击的对象已是选定组的成员,则会从选择组中删除该对象。

包含的对象应遵循上一节中所述的基本选择模型。 从Windows 窗体设计器的可用性测试,用户期望无缝访问包含的对象,而无需干预步骤(由包含对象施加)。

不相交和区域选择

图形对象编辑器应支持不相交的选择。 请注意,此图形不显示 Visual Studio 的控件外观。 有关详细的视觉规范,请参阅 图形对象选择外观

Disjoint and region selectors

不相交选择

图形编辑器还应为区域选择提供选型标记。 如果图形编辑器支持其他对象类型(如文本),则区域选择可能是不可能的,具体取决于这些其他对象类型的约束。

Marquee selection

选型

主要和辅助选择

某些图形对象编辑器允许用户编辑或对齐组中的对象。 在这种情况下,需要引入主要和次要选择的概念。 主要选择是所有其他对象响应组操作的对象。 用户选择的对象首先成为主控件,后续选择将成为辅助选择。 主要选择具有与辅助选择(s)不同的视觉处理,以指示哪个对象是主要对象:

Primary and secondary selection

具有两个辅助选择的主要选择

图形对象选择外观

选择控点是在对象边界框周围的矩形图案中绘制的正方形。 下图显示了图形对象可以具有处理、调整大小和就地编辑外观的各种状态的示例。 句柄的大小应使用 GetSystemMetrics API 绑定到窗口边框和边缘指标。

状态 外观 视觉对象详细信息
未选定 默认 Default button state
主要选择 可调整大小 Primary selection with resize handles
主要选择 不可调整大小 Primary selection without resize handles
主要选择 已锁定 Primary selection locked
辅助选择 可调整大小 Secondary selection with resize handles
辅助选择 不可调整大小 Secondary selection without resize handles
辅助选择 已锁定 Secondary selection locked
UI 活动 默认值 UI active state

查看选择模型

树视图

树视图中的选择会显示一个简单的突出显示。 如果用户单击节点名称或节点图标,则会选择该节点。 节点左侧的三角字形展开或收缩树控件,但不影响用户的选择,但有一个例外:在选定内容位于该节点的子节点时折叠父节点时,选择将移动到父节点。

Typical tree view in Visual Studio

Visual Studio 中的典型树视图

树视图可以支持连续和不连续的选择,即使在树中的多个级别上也是如此。 必须在可见的树节点上进行连续或不连续的多个选择。 如果某个节点已折叠,则不相交的选择将丢失,折叠的节点将获取所选内容。 这样,用户就可以看到将受到操作影响的节点。 当节点折叠时,不清楚哪些节点可能受到影响。

选择父节点时,该操作应应用于父节点,但在某些情况下,操作适用于父节点及其所有子节点。 在这种情况下,请在操作期间提供其他 UI,例如检查框或确认对话框,以向用户显式显示“应用于所有子级”选项。

重命名

如果树中的节点支持重命名,则应就地重命名。 就地操作应该是 Visual Studio 中所有树控件的标准。 提供一个可立即激活就地编辑模式的重命名命令,其中文本选择涵盖节点的整个名称,可接受用户输入。 如果节点表示文件,则文件名应包含扩展名。 选择突出显示应仅包含文件名的正文,而不是扩展名。

输入 结果
Enter 键 提交重命名操作
Esc 键 取消重命名操作
单击就地编辑区域外部 提交重命名操作
撤消 提供简单的撤消以取消重命名操作

列表和网格控件中的选择

列表选择中的关键概念是它是基于行的,这意味着当选定内容成为整个行时,该行被选为一个单元。 相比之下,网格可以允许选择特定单元格,而不会影响行的任何其他方面。 网格还可能包含嵌套行的层次结构(如 TreeGrid 中),允许通过与父行交互来选择和取消选择层次结构的整个分支。 列表中的选定内容由整个数据行上的简单突出显示颜色显示。 焦点由当前可编辑行或单元格周围的单像素点边框显示(如果所有单元格都是只读的)。

注意

焦点选择 是不同的概念。 焦点 是指示哪个 UI 元素的目标是接收未显式定向到另一个对象的输入,而 选择 是指对象包含在一组对象中,随后可能会进行后续操作。

列表中的选择可能是连续、不连续或区域。 允许多个选择时,应始终支持连续和不连续的选择,而对区域(box)选择的支持是可选的。 区域选择是通过在列表正文的空白区域拖动来启动的。

Object 选择
列表 系列
列表 脱节
列表 区域

单击一次列表会选择发生单击的行。 如果用户碰巧单击支持就地编辑的列表单元格,也会立即激活该单元格进行就地编辑。 否则,将立即选择整行并显示突出显示。

在列表正文中拖动执行以下三项操作之一:

  • 如果列表支持区域,并且鼠标下移位于空白区域,则启动区域选择

  • 如果列表单元格或行支持作为拖动源,则启动拖放操作

  • 选择当前行

就地编辑

允许就地编辑时,有两个基本模型:简单的编辑控件和属性选取器。 使用简单的编辑控件,内容会突出显示,并在激活就地编辑后立即可供用户输入。 在实现属性选取器的位置,激活就地编辑模式后,将显示调用属性选取器的按钮,并且不会突出显示当前选择。 选取器按钮应在单元格中右对齐。 有关就地编辑示例,请参阅 Visual Studio 中的“属性”窗口任务列表

键盘支持

列表和网格中的选择的键盘支持遵循标准 Windows 约定:

  • 箭头键导航列表,选择每行/单元格作为焦点移动。

  • Shift + 箭头在箭头键的方向执行连续选择。

  • Ctrl + 箭头后跟空格键在添加和删除选定内容中的列表项之间切换,从而创建不连续的选择。

  • 对于包含嵌套层次结构的网格,向右键展开父行,向左键折叠一个。

  • 如果单元格可编辑,Tab 键将焦点移到当前行中的单元格之间。

  • Enter 键对列表中的项执行默认命令(通常 为“打开”)。

  • F2 键将激活当前所选单元格的就地编辑。

持久性和保存设置

尽管 Visual Studio 中的每个软件组件通常负责自己的状态和持久性,但在某些情况下,Visual Studio 会自动保存设置,例如窗口大小和位置。 下表是自动保存的设置和需要执行显式用户或编程操作的设置的组合。

Object 要保存的内容 何时保存 保存位置
可选对象(例如代码行) 代码行上的断点

与代码行关联的用户快捷方式
保存项目时 项目的用户选项 (.suo) 文件
对话 对话框的位置(如果已移动)

用户上次在对话框中使用的视图
对话框关闭时

Visual Studio 会话结束时
内存中

HKEY_Current_User中的 注册表
窗口 窗口的大小和位置 窗口关闭时

Visual Studio 模式更改时

Visual Studio 会话结束时
项目的用户选项 (.suo) 文件

窗口设置的自定义选项文件
文档 文档中的当前选定内容

文档视图

用户访问的最后几个位置
保存文档时 项目的用户选项 (.suo) 文件
Project 对文件的引用

对磁盘上的目录的引用

对其他软件的引用

组件

有关项目本身的状态信息
保存项目时 项目文件
解决方案 对项目的引用

对文件的引用
保存项目或解决方案时 解决方案 (.sln) 文件
设置工具>选项 键盘自定义

工具栏自定义

配色方案
工具 > 选项 ”对话框关闭时

Visual Studio 会话结束时
HKEY_Current_User中的 注册表

用户正在执行的操作,以及执行该操作时,指示设置是在内存(会话期间)、保存到磁盘(跨会话作为注册表设置)、作为项目或解决方案文件本身的一部分、作为解决方案选项(.suo)文件的一部分,还是作为仅该软件组件知道的自定义设置文件。 上表显示了可保存设置的多个事件。 但是,你可能想要保存状态的其他时间:

  • 当用户在对话框或窗口中更改位置时

  • 当用户将焦点转移到另一个窗口时

  • 当用户从设计切换到调试模式时

  • 当用户注销其帐户时

  • 计算机进入休眠状态或关闭时

  • 计算机/硬盘驱动器即将重新格式化并重新设置时

窗口配置

窗口配置是开发环境的基本表示形式 - 它是一种方案,包括工具窗口列表及其排列方式。 对于 IDE(IDE 窗口)管理的窗口,布局信息将保留每个用户,因此当用户启动 IDE 时,窗口布局与上次退出 Visual Studio 时一样。 IDE 窗口的状态和位置以 XML 格式保存在自定义选项文件中。 由加载到 IDE 中的包创建的工具窗口将状态信息保存在注册表中,可能不是每个用户。

特定于配置文件的布局

每个配置文件都包含工具窗口布局,以熟悉特定开发人员角色的方式进行组织(Visual C++ 开发人员期望在 IDE 左侧看到解决方案资源管理器,而 C# 开发人员希望看到右侧的解决方案资源管理器)。 当用户在启动时选择配置文件后,将加载特定于配置文件的窗口布局。 包作者应确定最适合其客户体验的窗口布局,知道用户对窗口配置所做的更改随后将持久保存。

触摸输入

用户越来越多地在触摸设备上使用 Microsoft 开发产品。 但是,有一些障碍使得很难在触摸设备上使用开发工具。 用户希望产品提供可靠的精确触摸体验。 这些准则的目的是告知有关要合并哪些触摸功能的决定,并鼓励在 Visual Studio 和相关产品中实现一致的触摸体验。

体验级别

以下级别的经验旨在作为指导,帮助团队根据他们所需的接触投资兴趣确定提供哪些触摸功能。

  • 基本 体验 适用于想要提供触摸功能的团队,因此在整个工作中没有死角。

  • 优化 体验 适用于想要提供最常见触摸功能(例如,Internet 浏览器应用程序中通常可用的触摸功能)的团队。

  • 提升 的体验 适用于想要添加手势或其他可选功能(可以使应用程序触摸优先)的功能的团队。

基本体验 优化体验 提升的体验
允许用户... 修复代码和解决方案/项目级读取(无死角) 执行维护、Refactors 和导航任务 自信地以一致、直观、流畅的体验进行操作
编辑器 触摸平移和选择

滚动条触摸以跳转并按+拖动
收缩缩放

快速滚动

选择

轻松使用上下文菜单
顶部工具窗口 列表平移

项选择

滚动条触摸以跳转并按+拖动
轻松进行项滚动和选择
窗口化 调整窗口大小

快速访问
文档井 在打开的文件之间轻松导航
手势 确保跨 IDE 使用常见手势 基于手势的操作

支持拖放和设计器
其他注意事项 自定义屏幕键盘

笔势

手势为用户提供命令的快捷方式,否则可能需要更复杂的交互。 请参阅有关 桌面应用程序的常见触摸手势的 Windows 指南,并遵循本指南了解大多数手势,包括平移和缩放等简单手势。