2009-12-08 2 views
3

Я собираюсь внедрить графический интерфейс ленты в одном из моих приложений и, конечно же, хочу придерживаться Руководства MS, поэтому он чувствует себя как обычная лента и т. Д. Но я пытаюсь выяснить, как решить особая проблема в динамическом изменении ленты.Рекомендации по графическому интерфейсу Ribbon

Я создаю концептуальный игровой редактор, пожалуйста, не задавайте вопросов о том, почему лента, поскольку это чисто концептуальная идея, но приложение будет иметь множество редакторов (2D, 3D, Code и т. Д.), А для каждого - графический интерфейс должен адаптировать и отображать соответствующие элементы управления, т. е. в 2D-редакторе, возможно, кисть, на 3D много инструментов поворота и поворота.

Учитывая правила ленты, в главном меню имеет смысл использовать наиболее распространенные инструменты, но только для типа редактируемого объекта (поворот не имеет смысла для 2D или кода!).

Первоначально я думал, что он может иметь одно окно для каждого редактора, но это создает реальный беспорядок, и я предпочел бы иметь множество вкладных редакторов, чтобы вы могли быстро их прокручивать, как в eclipse и т. Д. Также все редакторы сохраняют обратно в один файл поэтому имеет смысл иметь одно окно приложения для сохранения этой метафоры для пользователя.

Я думал, что могу динамически менять вкладки ленты в зависимости от того, какой тип редактора был открыт (вкладки могут появляться/исчезать, содержимое на вкладке Главная и т. Д. Менялось бы), но тогда это нарушает рекомендации MS:

«Элементы управления отображаются в группе нЕ ДОЛЖНЫ изменяться в результате выбора. Если элемент управления не активен, то контроль должен быть серым цветом, а не удалены из группы»

«вкладка выбранного на Лента НЕ ДОЛЖНА автоматически переключаться в результате пользовательских выборов, сделанных в документе 177 (за исключением случаев, описанных в разделе «Контекстные вкладки») ».

Я понимаю обоснование принципов, но им не совсем уверен, как получить ленту, чтобы чувствовать себя в этой ситуации:

  • Изменить содержание вкладок в зависимости от типа редактора (идет против руководящие принципы)
  • есть вкладка каждого типа редактора (но что, если я в конечном итоге с типами 15 редакторов!)
  • имеют очень общую ленту и переместить конкретный е Дитор операция на боковую панель или что-то (не самый лучший дизайн GUI)
  • Используйте контекстные вкладки для каждого типа редакторов (лучшего решения, но означает, что вы всегда есть одна контекстной вкладки открыты!)

Любых другие идеи/решения были бы очень благодарны, поскольку я должен использовать ленту и использовать ее для этого типа приложений!

+0

Я рассматриваю точно такую ​​же проблему в одном из наших приложений. Какое решение вы решили сделать в конце? – roomaroo

ответ

1

Если вы предоставляете вкладку, специфичную для редактора, я полагаю, вы могли бы ее раскрыть таким образом, который лучше всего подходит для этого конкретного редактора. Это означает, что элементы управления будут периодически перемещаться, если вы используете одну и ту же вкладку для других редакторов. Представляется нецелесообразным серые элементы управления, которые не применяются к какому-либо конкретному редактору, если это вызовет много помех.

С другой стороны, органы управления серого цвета имеют преимущество в том, чтобы каждый элемент управления находился в точно таком же физическом месте на вкладке. Не стоит недооценивать силу этого.Нет ничего более усугубляющего, чем ожидать контроля в одном месте, и внезапно он переместится куда-нибудь (или вообще исчезнет). Почерк - это четкое указание на то, что в этом контексте серый контроль не применяется.

Так что, в зависимости от того, насколько разные элементы управления предназначены для каждого редактора, вам нужно будет решить, какой подход менее разрушителен: серость ненужных элементов управления или предоставить свежий макет для каждого редактора.

Невозможно открыть вкладку для каждого открытого редактора, так как будет много вкладок, которые бесполезны, если пользователь находится в определенном редакторе.

Если возможно, заручиться помощью некоторых добровольцев или бета-тестеров, а также сделать некоторые прототипы с ними, чтобы увидеть, какой подход лучше подходит для них.

1

Я столкнулся с той же проблемой дизайна. Одна из идей - использовать разные рамки для каждого редактора и другую специализированную ленту. Потому что в большой ленте мало смысла с 10 вкладками, полными отключенных команд.

P.S. Я изучаю другую идею - использовать определенные клики для запуска различных режимов редактора. (Я разработка программы дома редакционную.) В примере:

  1. Нажав кнопку «Home» на вкладку переключатели в редакторе плана для редактирования дома «сверху» вида;
  2. Нажав «Стена» вкладка переключается на редактор стены , где вы можете отредактировать форму стены и featues.
  3. Нажав на другие вкладки , вы не можете изменить текущий редактор. Они могут отображать другие немодальные команды , связанные с документом (или что-то еще), не о текущем режиме редактора .
Смежные вопросы