Ribbon GUI 指南

3
我在考虑在我的应用程序中实现一个缩带GUI,当然要遵守MS指南,以便它感觉像一个正常的缩带等等。但我正在尝试解决动态更改缩带中的一个特定问题。
我正在创建一个概念游戏编辑器,请不要问为什么要使用缩带,因为这只是一个概念想法,但应用程序将有许多编辑器(2D、3D、代码等),每个编辑器都应该适应并显示相关控件,例如在2D编辑器中可能是画笔,在3D中可能是平移和旋转工具。
根据缩带指南,主菜单包含最常用的工具是有意义的,但只针对正在编辑的对象类型(对于2D或代码来说,旋转没有意义!)。
起初,我认为它可以为每个编辑器创建一个窗口,但这会造成混乱,我宁愿有很多选项卡式的编辑器,这样你就可以像在eclipse中一样快速地翻阅它们。此外,所有编辑器都会保存回一个文件,因此保持一个应用程序窗口对于用户来说是有意义的。
我想我可以根据用户打开的编辑器类型动态更改缩带选项卡(选项卡可能会出现/消失,主页选项卡上的内容等会发生变化),但这违反了MS指南:
“显示在组中的控件不得因选择而更改。如果控件未激活,则必须将其置为灰色,而不是从组中删除”
“缩带上选择的选项卡不能自动切换,因为用户在文档中进行的选择(除非在上下文选项卡部分中注明)。”
我理解指南背后的原因,但我不确定如何在这种情况下使缩带感觉正确:
- 根据编辑器类型更改选项卡内容(违反指南) - 每个编辑器类型都有一个选项卡(但如果我最终拥有15个编辑器类型怎么办!) - 有一个非常通用的缩带,并将特定的编辑器操作移动到侧边栏或其他地方(不是最好的GUI设计) - 对于每种类型的编辑器使用上下文选项卡(更好的解决方案,但意味着您始终有一个上下文选项卡打开!)
如果有其他想法/解决方案,将不胜感激,因为我必须使用一个缩带,并且必须将其用于此类应用程序!

我正在看我们的一个应用程序中完全相同的问题。最终你选择了什么解决方案? - roomaroo
即使是Outlook现在也不再尊重这一点,我想他们意识到,除非应用程序是一个简单的“文档”(如Office应用程序),否则该建议几乎没有意义。在Outlook中在邮件和日历上下文之间切换将更改可用选项卡并将所选选项卡重置为主页选项卡。 - Anders Forsgren
2个回答

1
如果您提供了一个特定于编辑器的选项卡,我想您可以以最适合该特定编辑器的方式进行布局。这意味着,如果您在其他编辑器中使用相同的选项卡,则控件偶尔会移动位置。如果灰掉不适用于任何特定编辑器的控件会导致很多混乱,那么灰掉控件似乎不太实际。
另一方面,灰掉控件的好处在于保持每个控件在选项卡上完全相同的物理位置。请不要低估这一点的威力。没有什么比期望一个控件在某个地方更烦人,而它却突然移动到其他地方(或完全消失)。灰掉的控件清楚地表明该控件在此上下文中不适用。
因此,取决于每个编辑器的控件有多不同,您将不得不决定哪种方法对用户干扰较小:灰掉不需要的控件,还是为每个编辑器提供新的布局。
打开每个编辑器正在使用的选项卡可能行不通,因为当用户进入特定编辑器时,会有许多无用的选项卡。
如果可能的话,可以征求一些志愿者或测试人员的帮助,并与他们一起进行纸上原型设计,以了解哪种方法更适合他们。

1

我正在面临同样的设计问题。一个想法是为每个编辑器使用不同的框架和不同的专业功能区。因为一个有10个选项卡的大功能区充满了禁用命令,这没有什么意义。

P.S. 我正在研究另一个想法-使用某些选项卡点击触发不同的编辑器模式。(我正在设计一个房屋绘图程序。)例如:

  1. 单击“主页”选项卡切换到平面图编辑器以从“顶部”视图编辑房屋;
  2. 单击“墙壁”选项卡切换到墙壁编辑器,您可以在其中编辑墙壁形状和特征。
  3. 单击其他选项卡可能不会更改当前编辑器。它们可以显示与整个文档(或其他内容)相关的其他非模态命令,而不是关于当前编辑器模式本身的命令。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接