Поделиться через


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

Примечание.

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

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

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

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

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

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

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

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

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

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

Хотя в настоящее время наиболее распространенные физические разрешения экрана для пк с Windows — 1024x768 пикселей или больше, то для Windows используется 800x600 пикселей:

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

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

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

Руководящие принципы

Общая информация

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

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

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

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

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

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

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

Размер окна

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

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

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

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

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

    рисунок окна, размещенного немного выше центра

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

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

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

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

    Отображение контекстных окон рядом с объектом, из который он был запущен.

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

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

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

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

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

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

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

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

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

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

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

    рисунок трех окон, каскадных с левого верхнего угла

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

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

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

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

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

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

    Первоначально центр принадлежит окнам в верхней части окна владельца.

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

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

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

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

Порядок окна (порядок Z)

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

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

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

Фокус ввода

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

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

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