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