【问题标题】:Inline toolbar usability内联工具栏可用性
【发布时间】:2010-07-06 04:45:17
【问题描述】:

我有一个可以修改、保存和删除的实体,因此它会在窗口顶部有一个工具栏,您可以按下其中一个操作按钮。可以提交父实体。

但是,该实体也有可以修改、保存和删除的子实体。在父实体屏幕上有一个子实体网格,然后打开一个包含子实体值的新窗口(可以保存、删除等)是可用性最佳实践,还是我可以为这些子实体提供另一个工具栏.每个子实体都可以提交。

例如(内联):

//

[父实体]

|-----------------工具栏--------------------|

[新建子实体] [保存] [删除] [提交]

|-----------------工具栏--------------------|

[父实体字段]

[子实体网格]

|-----------------子实体工具栏--------------------|

[保存] [删除] [提交]

|-----------------子实体工具栏--------------------|

[子实体字段]

//

您可以从设置子实体字段的网格中选择一个子实体。

我目前将子实体作为一个单独的窗口,但我讨厌有多个弹出窗口。有多少弹出窗口可用的指南吗?

谢谢

【问题讨论】:

    标签: wpf usability


    【解决方案1】:

    一般来说,最好的平衡是将父实体和子实体的网格放在同一页面上,并为父网格和子网格进行就地编辑。顶部的单个菜单/工具栏适用于两个网格。这对于主从关系是相当常见的做法,例如您为您的应用程序描述的。例如,它被 Windows Explorer 和 Microsoft Outlook 使用。

    保存命令保存自上次保存以来的任何更改,无论是创建、修改或删除父级、子级或混合。删除删除当前选择的任何内容——一个或多个父级、一个或多个子级,甚至是属性中的选定文本(例如,文本框内容)。新建命令(或创建或插入)为任何具有焦点的网格创建一个新的默认实体。该设计为用户提供:

    • 一组简单的命令——例如,无需区分提交和保存。一键“保存”保证。

    • 最少的混乱和最少的冗余工具栏,使用户能够以最少的滚动或其他操作查看和操作尽可能多的数据对象。

    • 最少的导航工作和学习开销 - 无需学习单独的窗口(您理应避免的多个弹出窗口)或父子实体的命令。

    • 没有模式会降低灵活性、破坏用户的流程或通道,甚至强制破坏他们的工作(例如,由于与另一个过时对象的密钥冲突,他们无法提交新对象,但他们可以删除过时的对象,因为他们处于创建新对象的模式)。

    主要缺点是用户可能会混淆工具栏命令当前适用于哪些对象。您不希望他们认为他们正在删除一个孩子,而实际上他们正在删除父级(连同其所有子级)。为避免这种情况,您需要使用适当的图形设计来:

    • 明确选择的是什么:整个父级、整个子级或实体中的属性。一次只能选择一件事。保持一致,通常对整个选定内容使用相同颜色的反向视频(暗亮),并避免将反向视频用于其他任何内容。考虑使用网格的当前记录标记或“object control”来区分选择实体(网格的整行)和行内的属性。

    • 区分 活动 父级和 选定 父级。活动父级是与您在子网格中显示的任何内容相关联的父级。总是只有一个活跃的父母。选定的父级是用户为某些操作(例如删除)明确选择的父级(例如,通过单击对象控件或当前记录标记)。可能有也可能没有选定的父母。可能有多个选定的父级(例如,通过 shift 或 control-click)。通常,活动父项比选定的父项具有更微妙的图形。一个简单的当前记录标记(例如,左边距中的箭头)可能就足够了。查看文件管理器,例如 Windows 资源管理器(其中文件夹是父级,文件是子级),以了解区分活动和选定的其他想法。

    • 可能使用动态工具栏控件标签备份这些图形。当父网格处于活动状态时,使用“删除 [父类名称]”标记 Delete,当子网格处于活动状态时也是如此。如果空间不允许这么多文本,请使用工具提示。

    • 包括一种明确指示当前网格的方法(这主要用于指示 New 将创建哪些实体)。网格或网格标题周围的增强边框可能就足够了。否则,强调网格标题(类似于为活动窗口所做的)也可能很好。

    • 提供撤消。如果用户在想要孩子的时候不小心把父母吹走了,那么单击一下就可以逆转损坏。无论如何,所有富应用程序都应该撤消。如有必要,还包括删除父或子的警告(而不是删除实体属性的某些文本)。

    【讨论】:

    • 感谢您的回复。提交是与保存分开的业务规则。假设我想创建一个集合,这个集合有它自己的五个字段,然后是它的子字段。我需要能够将项目添加到此集合中,独立保存和提交每个单独的集合项目,还需要将集合作为一个整体保存和提交。现在我有一个带有工具栏及其字段的集合,以及一个子元素网格。当用户想要修改或添加一个时,子元素会出现一个新窗口,他们可以在其中保存提交等。
    • 我对使用太多弹出窗口持谨慎态度,但分离似乎是最清晰的。我可以独立打开每个集合项(我不需要查看父项),因为父项可以更改。这相当令人困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2021-09-13
    • 1970-01-01
    • 2016-07-12
    相关资源
    最近更新 更多