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


Обзор визуальных стилей

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

Темы и визуальные стили

Windows включает несколько функций, позволяющих пользователям адаптировать пользовательский интерфейс в соответствии с их индивидуальными потребностями и предпочтениями. К этим функциям относятся темы, которые были представлены в Microsoft Plus! для Windows 95. Тема — это пользовательская коллекция параметров, которая включает в себя фоновые изображения, курсоры, шрифты, звуки и значки. Ниже приведены некоторые характеристики тем.

  • Параметры темы указываются в файлах .theme, которые имеют формат, аналогичный файлам win.ini.
  • Независимый поставщик программного обеспечения (ISV) может создавать и распространять файл темы с продуктом.
  • В версиях, предшествующих Windows Vista, файлы тем отображаются на вкладке "Тема" панели управления "Отображение". В Windows Vista и более поздних версиях темы отображаются на панели управления Персонализации.

Дополнительные сведения о файлах .theme см. в разделе Формат файла темы.

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

  • Пользователи могут изменить визуальный стиль в любое время, выбрав другую тему.
  • Вы должны использовать API визуальных стилей для применения активного визуального стиля к пользовательским или нарисованным владельцем элементам управления приложения, если таковые есть.
  • Сведения, определяющие визуальный стиль, хранятся в msstyles-файле. Корпорация Майкрософт не поддерживает создание msstyles-файлов.

На следующем рисунке показан простое диалоговое окно с панелью задач на рабочем столе Windows 7, использующего тему Windows Aero без прозрачности. Так как приложение не настроено использовать визуальные стили, кнопки отображаются одинаково независимо от параметров темы.

снимок экрана диалогового окна с кнопками, которые не используют прозрачность

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

снимок экрана диалогового окна с кнопками, используюющими прозрачность

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

снимок экрана простого диалогового окна на рабочем столе Windows 8

Компоненты визуальных стилей

Визуальные стили поддерживаются следующими компонентами:

  • Версия 6 или более поздняя из общей библиотеки элементов управления (ComCtl32.dll)
  • API визуальных стилей, внедренное в UxTheme.dll
  • Служба тем
  • Один или несколько файлов определения визуального стиля (MSSTYLES)

API визуальных стилей зависит от системной службы с именем Темы. Общая библиотека элементов управления запрашивает службу тем для получения сведений о стиле и вплоть до Windows 7 использует службу для визуализации элементов управления в текущем визуальном стиле.

В Windows 8 и более поздних версиях API визуальных стилей по-прежнему работает, если служба тем отключена. Это означает, что общие элементы управления и не клиентская область окон по-прежнему будут иметь визуальные стили при отключении службы тем. К функциям Windows 8, которые по-прежнему требуют службы тем, относятся:

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

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

Требования к приложению для поддержки стилей визуальных элементов

Чтобы использовать визуальные стили, приложение должно работать в операционной системе, содержащей ComCtl32.dll версии 6 или более поздней. Если вы хотите, чтобы приложение использовало ComCtl32.dll версии 6, необходимо добавить манифест приложения или директиву компилятора, чтобы указать, что версия 6 должна использоваться, если она доступна. Сведения о создании манифеста приложения, позволяющего приложению использовать визуальные стили, см. в разделе Включение визуальных стилей.

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

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

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

Дополнительные сведения см. в статье Использование визуальных стилей с пользовательскими и Owner-Drawn элементами управления и справочником по визуальным стилям .

Визуальные стили