我正在考虑在我的一个应用程序中实现一个功能区GUI,当然希望遵守MS指南,所以感觉就像一个普通的功能区等。但我想弄清楚如何解决一个特定的问题动态更改功能区。
我正在创建一个概念游戏编辑器,请不要怀疑为什么功能区这纯粹是一个概念,但应用程序将有许多编辑器(2D,3D,代码等),每个人都应该使用GUI适应和显示相关控件,即在2D编辑器中可能是画笔,在3D许多平移和旋转工具上。
根据功能区指南,主菜单包含最常用的工具是有意义的,但仅适用于正在编辑的对象类型(旋转对2D或代码没有意义!)。
我最初认为每个编辑器可能有一个窗口,但这会让我们感到非常混乱,我宁愿有很多标签编辑器,所以你可以快速浏览它们,就像在eclipse等中一样。所有编辑都保存回一个文件所以有一个应用程序窗口可以为用户保留这个隐喻是有意义的。
我想我可以动态更改功能区选项卡,具体取决于用户打开的编辑器类型(选项卡可能会显示/消失,主页选项卡上的内容等会发生变化)但是这会打破MS的指导原则:
“组中显示的控件不得因选择而改变。如果控件未激活,则控件必须显示为灰色,而不是从组中删除”
“由于在177文档中进行了用户选择,因此在功能区上选择的选项卡不能自动切换(除了在上下文选项卡部分中注明)。”
我理解指南背后的原因但我不确定如何在这种情况下让功能感觉正确:
我会非常感谢任何其他想法/解决方案,因为我必须使用功能区,并且必须将它用于此类应用!
答案 0 :(得分:1)
如果您提供的是特定于编辑器的选项卡,我认为您可以按照最适合该特定编辑器的方式进行布局。这意味着如果您为其他编辑器使用相同的选项卡,控件将偶尔移动。将不适用于任何特定编辑器的控件灰色化似乎不切实际,如果它会导致很多混乱。
另一方面,灰显控件确实有将每个控件保持在选项卡上完全相同的物理位置的好处。不要低估这种力量。没有什么比预期控制一个地方更加恶化,并且让它突然移动到其他地方(或完全消失)。灰暗控制清楚地表明灰色控制不适用于此背景。
因此,根据每个编辑器的控件有多么不同,您必须确定哪种方法的破坏性较小:灰化不需要的控件,或为每个编辑器提供新的布局。
为每个打开的编辑器打开一个选项卡似乎不太可行,因为当用户在特定编辑器中时会有许多选项卡无用。
如果可能的话,请寻求一些志愿者或beta测试者的帮助,并与他们进行一些纸质原型设计,看看哪种方法可以更好地与他们产生共鸣。
答案 1 :(得分:1)
我面临同样的设计问题。一个想法是为每个编辑器使用不同的框架,并在其中使用不同的专用功能区。因为在一个大的功能区中没有什么意义,其中有10个选项卡,其中包含已禁用的命令。
P.S。我正在调查另一个想法 - 使用某些标签点击来触发不同的编辑器模式。 (我正在设计房屋起草计划。)例如: