Я собираюсь внедрить графический интерфейс ленты в одном из моих приложений и, конечно же, хочу придерживаться Руководства MS, поэтому он чувствует себя как обычная лента и т. Д. Но я пытаюсь выяснить, как решить особая проблема в динамическом изменении ленты.Рекомендации по графическому интерфейсу Ribbon
Я создаю концептуальный игровой редактор, пожалуйста, не задавайте вопросов о том, почему лента, поскольку это чисто концептуальная идея, но приложение будет иметь множество редакторов (2D, 3D, Code и т. Д.), А для каждого - графический интерфейс должен адаптировать и отображать соответствующие элементы управления, т. е. в 2D-редакторе, возможно, кисть, на 3D много инструментов поворота и поворота.
Учитывая правила ленты, в главном меню имеет смысл использовать наиболее распространенные инструменты, но только для типа редактируемого объекта (поворот не имеет смысла для 2D или кода!).
Первоначально я думал, что он может иметь одно окно для каждого редактора, но это создает реальный беспорядок, и я предпочел бы иметь множество вкладных редакторов, чтобы вы могли быстро их прокручивать, как в eclipse и т. Д. Также все редакторы сохраняют обратно в один файл поэтому имеет смысл иметь одно окно приложения для сохранения этой метафоры для пользователя.
Я думал, что могу динамически менять вкладки ленты в зависимости от того, какой тип редактора был открыт (вкладки могут появляться/исчезать, содержимое на вкладке Главная и т. Д. Менялось бы), но тогда это нарушает рекомендации MS:
«Элементы управления отображаются в группе нЕ ДОЛЖНЫ изменяться в результате выбора. Если элемент управления не активен, то контроль должен быть серым цветом, а не удалены из группы»
«вкладка выбранного на Лента НЕ ДОЛЖНА автоматически переключаться в результате пользовательских выборов, сделанных в документе 177 (за исключением случаев, описанных в разделе «Контекстные вкладки») ».
Я понимаю обоснование принципов, но им не совсем уверен, как получить ленту, чтобы чувствовать себя в этой ситуации:
- Изменить содержание вкладок в зависимости от типа редактора (идет против руководящие принципы)
- есть вкладка каждого типа редактора (но что, если я в конечном итоге с типами 15 редакторов!)
- имеют очень общую ленту и переместить конкретный е Дитор операция на боковую панель или что-то (не самый лучший дизайн GUI)
- Используйте контекстные вкладки для каждого типа редакторов (лучшего решения, но означает, что вы всегда есть одна контекстной вкладки открыты!)
Любых другие идеи/решения были бы очень благодарны, поскольку я должен использовать ленту и использовать ее для этого типа приложений!
Я рассматриваю точно такую же проблему в одном из наших приложений. Какое решение вы решили сделать в конце? – roomaroo