Какова наилучшая практика размещения форм и диалогов в системах с одним монитором и несколькими мониторами? - PullRequest
4 голосов
/ 10 июля 2009

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

  • Немодальные формы всегда должны открываться в размерах и месте закрытия.
  • Модальные формы (т. Е. С кнопками ОК / Отмена, Да / Нет) должны открываться снова в предыдущий размер (если размер), но в центре монитора, на котором находится приложение.
  • В центре монитора, на котором находится приложение, должно открываться окно с информационным сообщением.
  • В центре основного монитора должно открыться диалоговое окно с предупреждением или ошибкой.

Заранее спасибо, Brian

Ответы [ 3 ]

2 голосов
/ 12 июля 2009

Диалог не должен никогда открываться в центре монитора. Рассмотрим один из 30-дюймовых мониторов с разрешением 2560 x 1600 пикселей - использование приложения, развернутого на одном из этих мониторов, имеет смысл только в очень специфических случаях. Если форма приложения находится в одном из углов этой огромной области экрана, то пользователь может необходимо переместить курсор мыши из его текущего местоположения в центр экрана и обратно после закрытия диалогового окна. Кроме того, при нормальном расстоянии просмотра, вероятно, невозможно видеть весь этот экран одновременно, поэтому центр активное окно будет более "перед глазами пользователя", чем центр экрана. Любой диалог, который не помнит свою позицию, должен открываться по центру его родительского окна. Исключения должны быть сделаны для диалогов, которые больше, чем их родительское окно ( где имеет смысл оставить немного родительского элемента видимым, что делает его более понятным для пользователя, что происходит), и страницы свойств, которые должны появляться рядом с объектами, к которым они применяются.

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

2 голосов
/ 11 июля 2009

«Немодальные формы должны всегда открываться в размерах и месте закрытия».

Они должны иметь положение и размер по умолчанию при первом открытии. У тебя есть какие-нибудь правила по этому поводу?

Я бы добавил классификатор: если разрешение экрана / количество мониторов отличается от последнего раза, когда эта форма была открыта, то она возвращается к значению по умолчанию позиция. Так что никакие недоступные формы не восстановлены на 400 пикселей вправо и внизу площадь экрана.

«В центре основного монитора должно открыться диалоговое окно с предупреждением или ошибкой».

Я не понимаю, почему вы перемещаете окно сообщения с монитора, где находится приложение находится (далее MWTAR) на основном мониторе. Вы знаете, что игрок глядя на MWTAR; В конце концов он только что сделал что-то «плохое». Почему ты Смена мониторов теперь у вас есть что сказать важное?

(В конце концов, если это диалоговое окно с ошибкой, содержащее полезную диагностику, он не будет все равно прочитай. Я не вижу необходимости скрывать это от него.)

Дальнейшая мысль. Одна проблема с модальными диалоговыми окнами с ошибками заключается в том, что, где бы они ни появлялись, пользователь может случайно нажать «Enter» при вводе чего-то другого и закрыть его. Я знаю, что делаю это довольно часто.

Одна хитрость, которую я видел, чтобы преодолеть это, состоит в том, чтобы отключить кнопку Ok, когда диалоговое окно впервые отображается. В диалоговом окне есть 3-секундный таймер, который отображает оставшееся время в маленькой метке, прикрепленной к кнопке. Таким образом, игрок знает, что скоро сможет распустить вещь.

Очевидно, что это должно использоваться очень, очень экономно, и только в самых редких и самых важных диалогах. Но это показалось мне довольно умным. Возможно, все, что нужно сделать, это сделать Ok кнопкой по умолчанию через три секунды.

1 голос
/ 11 июля 2009

В зависимости от платформы, когда приложение не имеет фокуса при выдаче предупреждения, следует избегать фокусировки. Слишком легко для пользователя, который вводит предупреждение без возможности прочитать его.

например. в Windows используйте возможность прошить кнопку панели задач.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...