树形视图 (Windows)

出自UXGuide.net

(重定向自windows:Controls/tree-views
跳转到:导航, 搜索

树形视图
Tree Views

目录


树形视图(Tree View)用于通过单选或多选方式查看和操作以层级方式组织的一组对象。

在树形结构中,包含数据的对象称为“叶子结点”,而包含其他对象的对象则称为“容器结点”。位于最顶端的单个容器结点称为“根结点”。用户可以通过单击“加号减号扩展器按钮”来展开或折叠容器结点。

Aa511496_TreeViews01(en-us,MSDN_10).png

典型的树形视图

注:布局菜单相关的设计规范请参考各自相应的章节。


它用在这里合适吗?

数据具有层次结构并不意味着就一定要使用树形视图。很多时候,列表视图(List View)是更加简单而有效的选择。列表视图能够:

要使用列表视图,你可以使用下列方法来去除信息的层次结构:

Aa511496_TreeViews09(en-us,MSDN_10).png
在这个示例中,列表视图的分组被用作顶层容器。
Aa511496_TreeViews10(en-us,MSDN_10).png
在这个示例中,选项卡被用作顶层容器。
Aa511496_TreeViews11(en-us,MSDN_10).png
在这个示例中,下拉列表被用作顶层容器。
Aa511496_TreeViews14(en-us,MSDN_10).png
在这个示例中,低层次的容器显示在文档窗口内。

如果需要显示层次级别多于两级的数据(不包括根结点),则必须使用树形视图。

考虑下列问题,以判断是否应当使用树形视图控件:

注:有时,看起来像是树形视图的控件其实是通过列表视图来实现的。这种情况下,应当基于其使用来遵守设计规范,而不是实现。


设计理念

树原本是用于组织对象并使其易于查找,但要让树中的对象易于发现是非常困难的。当考虑选择树形视图或是其他组织方式时,应当牢记下列原则。


可预见性与可发现性

树形视图是基于对象间的关系的。当对象之间的关系是清晰、熟知、互斥的,且每个对象都可以对应到单个易于确定的容器中时,树是最为合适的。

一个严重的问题在于,一个对象可能出现在不同的结点上。例如,用户会期望在哪里找到能够播放音乐、拥有大容量硬盘并使用 USB 接口的硬件设备?也许是好几个不同的容器结点,比如多媒体、存储、USB,也可能是硬件资源。一个解决方案是把对象置于最合适的容器中,不考虑之前的情况;另一种方法是把每个对象置于所有合适的容器中。前者有助于形成一个简单、清晰的层次结构,而后者则提高了可发现性——各有好处也都存在潜在的问题。

用户可能无法完全理解树的布局,但他们在对树操作一段时间之后会形成一个关于其关系的心理模型。如果这个心理模型是错误的,则会导致困惑。例如,假设音乐播放器可以在多媒体、存储及 USB 容器中找到。这种安排提高了可发现性。如果用户先在多媒体中发现了这个设备,用户可能会认为所有像音乐播放器这样的设备都会出现在多媒体容器中。然后用户会期望类似像数码相机这样的设备也出现在多媒体容器中,如果他发现那里没有的话,就会感到困惑。

设计树的挑战即在于平衡可发现性与可预见性的用户模式,以最大化减少混乱。


广度 vs 深度

可用性研究显示,用户在较宽广的树中寻找对象比在较深的树中更容易成功,因此在设计树时,应当优先考虑广度。理想情况下,树的层级应当不超过四级(不包括根),最常访问的对象应当出现在前两层中。


其他原则

最重要的一件事:


仔细权衡使用树形视图的优缺点。具有层次结构的数据并不意味着需要使用树形视图来展示。


使用模式

树形视图具有下列使用模式:

仅包含容器结点的树形视图

用户一次可以查看并操作一个容器。

通常,这类树形视图具有一个关联控件用于显示选定容器的内容,因此用户一次只能操作一个容器。

Aa511496_TreeViews02(en-us,MSDN_10).png

在这个示例中,树形视图仅包含容器节点。选中节点的内容显示在关联的列表视图控件中。

带有容器及叶子结点的树形视图

用户能够查看和操作容器及叶子。

通常来说,这类树形视图具有一个关联控件,用于显示选中容器或叶子的内容。让用户能够操作叶子结点往往是支持多选的基础。

Aa511496_TreeViews03(en-us,MSDN_10).png

在这个示例中,树形视图既有容器也有叶子结点。因为支持多选,已打开项的内容通过选项卡显示在关联控件中。

或者,树形视图也可以具有组织结构化列表,容器为标题,叶子是内容选项。

Aa511496_TreeViews04(en-us,MSDN_10).png

在这个示例中,树的叶子结点是选项而容器是选项分类。

带复选框的树形视图

用户能够选择任意数量的项,包括不选。

复选框明确指明可以进行多选。当多选是基本操作或者经常被使用时,应当使用这种树模式。

Aa511496_TreeViews05(en-us,MSDN_10).png

在这个示例中,带复选框的树形视图将选择用于打开或关闭功能。

树形视图构造器

用户能够通过每次添加一个容器或叶子结点及可能的顺序排列来构造树。

很多树可以由用户来创建或修改。有些树是通过快捷菜单和拖放操作(如 Windows® Explorer 中的文件夹)来就地创建的,而其他树则是通过专门的对话框(如 Windows Internet Explorer® 中的收藏夹列表)来构建的。

Aa511496_TreeViews06(en-us,MSDN_10).png

在这个来自 Windows Internet Explorer 的示例中,用户能够通过对话框构造他们自己的收藏夹列表。

具有其他访问方式的树形视图

用户可以通过使用树形层次结构之外的方式查找对象。

之前曾提到过,用户在大而复杂的树中查找对象可能会感到困难,因此这类树应当具有其他辅助的访问方式,如字词搜索、索引或筛选。

Aa511496_TreeViews07(en-us,MSDN_10).png

在这个示例中,用户可以通过目录、索引及收藏夹来访问信息。对于有些用户来说,Index 及 Search 选项卡比 Contents 选项卡更有用。

Aa511496_TreeViews08(en-us,MSDN_10).png

在这个示例中,Windows 开始菜单也允许用户通过在搜索框中输入部分名称来访问程序、文件及网页。


设计规范

呈现

Aa511496_TreeViews18(en-us,MSDN_10).png
在这个示例中,该列表最初显示的是示例项。
错误:
Aa511496_TreeViews15(en-us,MSDN_10).png
在这个示例中,Mailbox 和 Archive 文件夹的内容相似,一旦树被展开了多层之后,用户就很难知道自己在树的什么位置,从而引起困惑。在不同的部分使用稍稍不同的图标可以解决这个问题。
正确:
Aa511496_TreeViews28(en-us,MSDN_10).png
更好:
Aa511496_TreeViews29(en-us,MSDN_10).png
连结线对理解没有什么帮助。


交互

Aa511496_TreeViews17(en-us,MSDN_10).png
在这个示例中,信息提示用于提供进一步的信息。


树的组织


带复选框的树形视图

Aa511496_TreeViews16(en-us,MSDN_10).png
在这个示例中,选中项的数量显示在树的下方,很明确有两项未选中。
正确:
Aa511496_TreeViews19(en-us,MSDN_10).png
在这个示例中,复选框的混合状态用于指示部分选中。


推荐尺寸与间距

Aa511496_TreeViews12(en-us,MSDN_10).png

用于树形视图的推荐尺寸与间距

错误:
Aa511496_TreeViews13(en-us,MSDN_10).png
在这个示例中,稍稍增加树形视图的宽度和高度可以在大多数情况下消除滚动条。在这个树中,一次只能打开一个容器。

标签

控件标签

错误:
Aa511496_TreeViews23(en-us,MSDN_10).png
在这个示例中,标签没有提供关于多选的信息。
较好:
Aa511496_TreeViews22(en-us,MSDN_10).png
在这个示例中,标签明确指出可以进行多选。
更好:
Aa511496_TreeViews24(en-us,MSDN_10).png
在这个示例中,复选框明确指出可以进行多选,因此标签无须那么明显。


数据文本


说明文本

Aa511496_TreeViews27(en-us,MSDN_10).png
在这个示例中,附加说明信息位于控件的下方。


文档编写

当提及树形视图时:

示例:In the Contents list, select User Interface Design.(在“目录”列表中,选择“用户界面设计”。)

当提及复选框时:

示例:In the Items to back up list, select the My Documents check box.(在“要备份的项目”列表中,选择“我的文档”复选框。)

导航
工具箱