Управление окнами

Примечание

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

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

Для следующих рекомендаций:

  • Окно верхнего уровня не имеет окна владельца и отображается на панели задач. Примеры: окна приложений. В Windows Vista и более поздних версиях диалоговые окна без окон-владельцев и страниц свойств также считаются верхним уровнем.
  • Собственное окно имеет окно владельца и не отображается на панели задач. Примеры: модальные диалоговые окна, немодальные диалоговые окна.
  • Окно, инициированное пользователем, отображается как прямой результат действия пользователя. В противном случае это программа, инициируемая программой, или системная, если она инициирована Microsoft Windows . Например, диалоговое окно Параметры инициируется пользователем, а напоминание о собрании инициируется программой.
  • Контекстное окно — это инициируемое пользователем окно, которое имеет строгое отношение к объекту, из которого он был запущен. Например, окна, отображаемые контекстными меню или значками области уведомлений, являются контекстными, а окна, отображаемые в строках меню, — нет.
  • Активный монитор — это монитор, на котором выполняется активная программа.
  • По умолчанию используется монитор с меню "Пуск", панелью задач и областью уведомлений.

Принципы проектирования

Управление окнами является одним из самых фундаментальных действий пользователей. До Windows Vista окнам часто присваивались небольшие размеры по умолчанию и размещались в середине экрана. Этот подход хорошо подходит для старых одиночных мониторов с низким разрешением, но не для современного видеоустройства.

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

  • Позволяет пользователям в полной мере воспользоваться преимуществами своего расширенного оборудования.
  • Пользователям требуется меньше усилий для перемещения мыши на большие расстояния.
  • Делает размещение окна более предсказуемым и, следовательно, упрощает поиск.

Минимальное поддерживаеме разрешение экрана

Минимальное эффективное разрешение экрана , поддерживаемого Windows, составляет 800 x 600 пикселей. Это означает, что окна фиксированного размера должны полностью отображаться в минимальном разрешении (резервируя место для панели задач), но окна с возможностью изменения размера можно оптимизировать для эффективного разрешения 1024x768 пикселей, если они работают с минимальным разрешением.

Хотя в настоящее время наиболее распространенные физические разрешения экрана для компьютеров с Windows имеют размер 1024 x 768 пикселей или больше, целевое разрешение 800 x 600 пикселей позволяет Windows:

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

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

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

Рекомендации

Общие сведения

  • Поддержка минимального эффективного разрешения Windows 800x600 пикселей. Для критически важных пользовательских интерфейсов , которые должны работать в безопасном режиме, поддерживают эффективное разрешение 640 x 480 пикселей. Обязательно учитывайте пространство, используемое панелью задач, резервируя 48 вертикальных относительных пикселей для окон, отображаемых на панели задач.
  • Оптимизируйте изменяемые макеты окон для эффективного разрешения 1024x768 пикселей. Автоматически изменяйте размер этих окон для более низкого разрешения экрана таким образом, чтобы он по-прежнему был функциональным.
  • Обязательно протестируйте окна с разрешением 96 точек на дюйм (100 процентов) с разрешением 800 x 600 пикселей, 120 точек на дюйм (125 процентов) на 1024 x 768 пикселей и 144 точек на дюйм (150 процентов) на 1200 x 900 пикселей. Проверьте наличие проблем с макетом, таких как вырезка элементов управления, текста и окон, а также растяжение значков и растровых рисунков.
  • Для программ с сенсорным и мобильными устройствами оптимизируйте 120 точек на дюйм. Экраны с высоким разрешением на дюйм в настоящее время распространены на сенсорных и мобильных компьютерах.
  • Окна с возможностью изменения размера больше не должны отображать глиф изменения размера в правом нижнем углу, так как:
    • Размер всех сторон и краев окна можно изменить, а не только в правом нижнем углу.
    • Для отображения глифа требуется строка состояния, но многие окна с возможностью изменения размера не содержат строк состояния.
    • Границы окна с возможностью изменения размера и указатели изменения размера более эффективны при передаче информации о том, что окно может изменяться, чем глиф изменения размера.

Элементы управления заголовка

Используйте элементы управления заголовка следующим образом:

  • Близко. Все основные и вторичные окна со стандартной рамкой окна должны иметь кнопку Закрыть в строке заголовка. Нажатие кнопки Закрыть может отменить или закрыть окно.

Снимок экрана: диалоговое окно без кнопки закрытия

В этом примере диалоговое окно не имеет кнопки Закрыть в строке заголовка.

  • Минимизация. Для всех основных и длительно работающих дополнительных окон без режима (например, диалогов хода выполнения) должна быть кнопка Свернуть. Если нажать кнопку Свернуть, окно будет переходить к кнопке панели задач. Следовательно, для свернутых окон требуется значок заголовка окна.
  • Развертывание или восстановление вниз. Все окна с возможностью изменения размера должны иметь кнопку Развернуть или восстановить вниз. При нажатии кнопки Развернуть отображается окно самого большого размера, которое для большинства окон является полноэкранным; в то время как при нажатии кнопки Восстановить вниз отображается окно в предыдущем размере. Тем не менее, некоторые окна не получают преимуществ от использования полноэкранного режима, поэтому эти окна должны увеличиваться до максимального полезного размера.

Размер окна

  • Выберите размер окна по умолчанию, соответствующий его содержимому. Не бойтесь использовать начальные размеры окна большего размера, если вы можете эффективно использовать пространство.
  • Используйте окна с возможностью изменения размера, когда это целесообразно, чтобы избежать полос прокрутки и усеченных данных. Windows с динамическим содержимым и списками больше всего выигрывают от изменяемых размеров окон.
  • Для текстовых документов рекомендуется использовать максимальную длину строки в 65 символов , чтобы упростить чтение текста. (Символы включают буквы, знаки препинания и пробелы.)
  • Окна фиксированного размера:
    • Должен быть полностью видимым и иметь размер для размещения в рабочей области.
  • Окна с возможностью изменения размера:
    • Может быть оптимизирована для более высоких разрешений, но при необходимости уменьшаться до фактического разрешения экрана.
    • Для постепенно большего размера окна должно отображаться все больше сведений. Убедитесь, что по крайней мере одна часть окна или элемент управления содержит содержимое с возможностью изменения размера.
    • Следует избегать восстановленных размеров по умолчанию, которые развернуты или близки к максимальному значению. Вместо этого выберите размер по умолчанию, который обычно является наиболее полезным без использования полноэкранного режима. Предположим, что пользователи будут разворачивать окно вместо изменения размера, чтобы сделать его полноэкранным.
    • Следует задать минимальный размер окна, если есть размер, ниже которого содержимое больше не может использоваться. Для элементов управления с возможностью изменения размера задайте минимальные размеры элементов с возможностью изменения размера, например минимальную ширину функциональных столбцов в представлениях списка.
    • Следует изменить презентацию, если это делает содержимое пригодным для использования при меньших размерах.

Снимок экрана: кнопки проигрывателя мультимедиа

В этом примере Медиаплеер Windows изменяет свой формат, когда окно становится слишком маленьким для стандартного формата.

Расположение окна

  • Для следующих рекомендаций "центрирование" означает смещение вертикального размещения немного в сторону верхней части монитора, а не размещение точно посередине. Разместите 45 процентов пространства между верхней частью монитора или владельца и верхней частью окна и 55 процентов между нижней частью монитора или владельца и нижней частью окна. Это происходит потому, что глаз естественным образом смещен к верхней части экрана.

    рисунок окна, расположенного немного по центру

    "Центрирование" означает смещение вертикального размещения немного к верхней части монитора.

  • Если окно является контекстным, всегда отображайте его рядом с объектом, с которым оно было запущено. Поместите его в сторону, чтобы исходный объект не был покрыт окном.

    • При отображении с помощью мыши по возможности поместите его смещение вниз и вправо.

    Рисунок контекстного окна, размещенного справа от объекта

    Показать контекстные окна рядом с объектом, с которым он был запущен.

    Рисунок окна области уведомлений

    Рядом с областью уведомлений отображаются значки Windows, запущенные из области уведомлений.

  • Если отображается с помощью пера, по возможности поместите его таким образом, чтобы не покрываться рукой пользователя. Для правшей отображается слева; в противном случае отображается справа.

    Рисунок контекстного окна, размещенного слева от объекта

    При использовании пера также показывать контекстные окна, чтобы они не были покрыты рукой пользователя.

  • Разработчики: Вы можете различать события мыши и события пера с помощью API GetMessageExtraInfo . Вы можете определить ручность пользователя с помощью API SystemParametersInfo с SPI_GETMENUDROPALIGNMENT.

  • Поместите диалоговые окна хода выполнения в правый нижний угол активного монитора.

    рисунок индикатора выполнения в правом нижнем углу

    Поместите диалоговые окна хода выполнения в правый нижний угол.

  • Если окно не связано с текущим контекстом или действием пользователя, поместите его подальше от текущего расположения указателя. Это предотвращает случайное взаимодействие.

  • Если окно является приложением или документом верхнего уровня, всегда каскадно его источник от верхнего левого угла монитора. При создании активной программой используйте активный монитор; в противном случае используйте монитор по умолчанию.

    Рисунок из трех окон, расположенных в верхнем левом углу

    Каскадные окна приложений или документов верхнего уровня в левом верхнем углу монитора.

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

    Изображение окна служебной программы по центру монитора

    Центр служебных окон верхнего уровня.

  • Если окно принадлежит окну, сначала отобразите его по центру в верхней части окна владельца. Для последующего отображения рекомендуется отображать его в последнем расположении (относительно окна владельца), если это, скорее всего, будет удобнее.

    Изображение собственного окна по центру окна владельца

    Изначально центрировать принадлежащие окна поверх окна владельца.

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

    Рисунок безмодерного диалогового окна в окне владельца

    Отображение немодовых диалоговых окон поверх окна владельца, чтобы упростить их поиск.

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

Порядок окна (Z-заказ)

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

Активация окна

  • Учитывайте выбор состояния окна пользователей. Если существующее окно требует внимания, нажмите кнопку панели задач три раза, чтобы привлечь внимание и оставить его выделенным, но не делайте ничего другого. Не восстанавливайте и не активируйте окно. Не используйте звуковые эффекты. Вместо этого разрешите пользователям активировать окно, когда они будут готовы.
    • Исключение: Если окно не отображается на панели задач, переместите его в верхнюю часть всех остальных окон и заголовок окна.
  • Восстановление основного окна также должно восстановить все его вторичные окна, даже если эти вторичные окна имеют собственную кнопку панели задач. При восстановлении поместите дополнительные окна поверх основного окна.

Фокус ввода

  • Окна, отображаемые действиями, инициированными пользователем, должны принимать фокус ввода, но только в том случае, если окно отображается немедленно (в течение 5 секунд). После отрисовки окно может принять фокус ввода один раз.
    • Если окно отображается медленно (более 5 секунд), пользователи, скорее всего, будут выполнять другую задачу во время ожидания. Сосредоточение внимания на этом этапе будет раздражает, особенно если делается несколько раз.
  • Окна, которые не отображаются сразу или отображаются в результате инициированного системой действия, не должны принимать фокус ввода. Вместо этого отображайте сверху без фокуса и позвольте пользователям активировать их, когда они будут готовы.
    • Исключение: Диспетчер учетных данных.

Сохраняемость

  • При повторном отображении окна рекомендуется отображать его в том же состоянии, что и последний доступ. При закрытии сохраните используемый монитор, размер окна, расположение и состояние (развернутое и восстановление). При повторном воспроизведении восстановите сохраненный размер, расположение и состояние окна с помощью соответствующего монитора. Кроме того, рассмотрите возможность сохранения этих атрибутов в экземплярах программы для каждого пользователя. Исключения:
    • Не сохраняйте и не сохраняйте эти атрибуты для окон, если их использование так, что пользователи с гораздо большей вероятностью захотят полностью начать заново.
    • Для программ, которые могут использоваться на компьютерах с планшетами Windows и сенсорными технологиями, сохраните два состояния окон для альбомного и книжного режимов. Дополнительные сведения см. в разделе Проектирование для различных размеров дисплея.
  • Если текущая конфигурация монитора не позволяет отображать окно с использованием последнего состояния:
    • Попробуйте отобразить окно с помощью последнего монитора.
    • Если окно больше монитора, при необходимости измените размер окна.
    • При необходимости переместите расположение в левый верхний угол, чтобы поместиться внутри монитора.
    • Если описанные выше действия не помогли решить проблему, отменить изменения рекомендации по размещению окон по умолчанию. По возможности рассмотрите возможность восстановления предыдущего размера.