Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается общая концепция квалификаторов ресурсов, особенности их использования и назначение каждого из имен квалификаторов. См. ResourceContext.QualifierValues для таблицы всех возможных значений квалификатора.
Приложение может загружать ассеты и ресурсы, которые адаптированы к контекстам среды выполнения, таким как язык отображения, высокая контрастность, фактор масштабирования и многие другие. Чтобы это сделать, назовите папки или файлы ресурсов в соответствии с именами и значениями квалификаторов, которые соответствуют этим контекстам. Например, вы можете захотеть, чтобы ваше приложение загружало другой набор ресурсов изображений в режиме высокой контрастности.
Дополнительные сведения о преимуществах локализации приложений см. в разделе Глобализация и локализация.
Имя квалификатора, значение квалификатора и квалификатор
Имя квалификатора — это ключ, который сопоставляется с набором значений квалификатора. Ниже приведены имя квалификатора и значения квалификатора для контраста.
| Контекст | Имя квалификатора | Значения квалификатора |
|---|---|---|
| Параметр высокой контрастности | контрастность | стандартный, высокий, черный, белый |
Вы объединяете имя квалификатора со значением квалификатора для формирования квалификатора.
<qualifier name>-<qualifier value> — это формат квалификатора.
contrast-standard является примером квалификатора.
Таким образом, для высокой контрастности набор квалификаторов — contrast-standard, contrast-highcontrast-blackи contrast-white. Имена квалификатора и значения квалификатора не учитывает регистр. Например, contrast-standard и Contrast-Standard - одинаковый квалификатор.
Использование квалификаторов в именах папок
Ниже приведен пример использования квалификаторов для имен папок, содержащих файлы ресурсов. Используйте квалификаторы в именах папок, если у вас есть несколько файлов ассетов для каждого квалификатора. Таким образом, вы устанавливаете квалификатор единожды для всей папки, и он применяется ко всему содержимому папки.
\Assets\Images\contrast-standard\<logo.png, and other image files>
\Assets\Images\contrast-high\<logo.png, and other image files>
\Assets\Images\contrast-black\<logo.png, and other image files>
\Assets\Images\contrast-white\<logo.png, and other image files>
Если вы назовёте папки, как показано в приведенном выше примере, ваше приложение будет использовать режим высокой контрастности для загрузки файлов ресурсов из папки, которая названа в соответствии с нужным квалификатором. Таким образом, если параметр имеет значение High Contrast Black, файлы ресурсов в папке \Assets\Images\contrast-black загружаются. Если параметр имеет значение None (то есть компьютер не находится в режиме высокой контрастности), файлы ресурсов в \Assets\Images\contrast-standard папке загружаются.
Использование квалификаторов в именах файлов
Вместо создания и именования папок можно использовать квалификатор для именования самих файлов ресурсов. Вы можете предпочесть сделать это, если у тебя есть только один файл ресурса на квалификатор. Рассмотрим пример.
\Assets\Images\logo.contrast-standard.png
\Assets\Images\logo.contrast-high.png
\Assets\Images\logo.contrast-black.png
\Assets\Images\logo.contrast-white.png
Файл, имя которого содержит квалификатор, наиболее подходящий для параметра, загружается. Эта логика сопоставления работает так же, как и для имен папок.
Ссылка на строку или ресурс изображения по имени
Дополнительные сведения о том, как ссылаться на строковый ресурс или ресурс изображения по имени, см. в следующих разделах:
- Ссылка на строковый идентификатор ресурса из разметки XAML
- Ссылка на строковый идентификатор ресурса из кода
- Ссылка на изображение или другой ресурс из разметки XAML и кода
Фактические и нейтральные совпадения квалификатора
Вам не нужно предоставлять файл ресурсов для каждого значения квалификатора. Например, если вы обнаружите, что вам нужен только один визуальный ресурс для высокой контрастности и один для стандартной контрастности, то можно назвать такие ресурсы, как это.
\Assets\Images\logo.contrast-high.png
\Assets\Images\logo.png
Имя первого файла содержит contrast-high квалификатор. Этот квалификатор является точным совпадением для любого параметра высокой контрастности, когда режим высокой контрастности включен . Другими словами, поскольку это близкое совпадение, оно предпочтительно. Фактическое совпадение может возникать только в том случае, если квалификатор содержит фактическое значение, как в данном случае. В этом случае
Файл с именем logo.png не имеет квалификатора контрастности на нем вообще. Отсутствие квалификатора является нейтральным значением. Если нет предпочтительного совпадения, то нейтральное значение служит резервным совпадением. В этом примере, если высокая контрастность отключена, фактические совпадения отсутствуют. Нейтральное совпадение — это лучшее совпадение, которое можно найти, и поэтому ресурс logo.png загружается.
Если бы вы изменили имя logo.png на logo.contrast-standard.png, то имя файла содержало бы фактическое значение квалификатора. При отключении высокого контраста произойдет фактическое совпадение с logo.contrast-standard.png, и будет загружен соответствующий файл ресурсов. Таким образом, одни и те же файлы будут загружены в одинаковых условиях, но из-за разных совпадений.
Если вам нужен только один набор ресурсов для высокой контрастности и один набор для стандартной контрастности, можно использовать имена папок вместо имен файлов. В этом случае опущение имени папки полностью дает нейтральное соответствие.
\Assets\Images\contrast-high\<logo.png, and other images to load when high contrast theme is not None>
\Assets\Images\<logo.png, and other images to load when high contrast theme is None>
Дополнительные сведения о том, как работает сопоставление квалификатора, смотрите в разделе "Управление ресурсами с помощью MRT Core".
Несколько квалификаторов
Квалификаторы можно объединить в именах папок и файлов. Например, может потребоваться, чтобы приложение загрузит ресурсы изображения, если режим высокой контрастности включен , а коэффициент масштабирования дисплея — 400. Одним из способов сделать это является использование вложенных папок.
\Assets\Images\contrast-high\scale-400\<logo.png, and other image files>
Чтобы загрузить logo.png и другие файлы, параметры должны соответствовать обоим квалификаторам.
Другим вариантом является объединение нескольких квалификаторов в одном имени папки.
\Assets\Images\contrast-high_scale-400\<logo.png, and other image files>
В имени папки вы объединяете несколько квалификаторов, разделенных подчеркиванием.
<qualifier1>[_<qualifier2>...] — это формат.
Можно объединить несколько квалификаторов в имени файла в одном формате.
\Assets\Images\logo.contrast-high_scale-400.png
В зависимости от инструментов и рабочих процессов, используемых для создания контента, или от того, что вам удобнее читать и/или управлять, можно либо выбрать единую стратегию именования для всех квалификаторов, либо комбинировать стратегии для разных квалификаторов.
Альтернативный формат
Квалификатор alternateform используется для предоставления альтернативной формы ресурса для определенной специальной цели. Обычно это используется только японскими разработчиками приложений для предоставления строки furigana, для которой зарезервировано значение msft-phonetic (см. раздел "Поддержка Furigana для японских строк, которые можно отсортировать" в разделе "Подготовка к локализации").
Либо целевая система, либо приложение должны предоставить значение, против которого alternateform будут сопоставляться квалификаторы. Не используйте msft- префикс для собственных значений квалификатора alternateform .
Настройка
Вряд ли вам потребуется имя квалификатора configuration. Его можно использовать для указания ресурсов, применимых только к определенной среде времени разработки, например к ресурсам только для тестирования.
Квалификатор configuration используется для загрузки ресурса, который лучше всего соответствует значению переменной MS_CONFIGURATION_ATTRIBUTE_VALUE среды. Таким образом, можно задать переменную строковым значением, которое было назначено соответствующим ресурсам, например designerили test.
Контрастность
Квалификатор contrast используется для предоставления ресурсов, которые лучше всего соответствуют параметрам высокой контрастности.
DXFeatureLevel
Вряд ли вам потребуется имя квалификатора dxfeaturelevel. Он был разработан для использования с игровыми ресурсами Direct3D, чтобы привести к загрузке ресурсов более низкого уровня, чтобы соответствовать определённой конфигурации устаревшего оборудования того времени. Но распространенность этой конфигурации оборудования в настоящее время настолько низка, что мы рекомендуем не использовать этот квалификатор.
Основной регион
Квалификатор homeregion соответствует параметру пользователя для страны или региона. Он представляет домашнее расположение пользователя. Значения включают любой допустимый региональный тег BCP-47. То есть любой двухбуквенный код региона ISO 3166-1 альфа-2, а также набор трехзначных географических кодов ISO 3166-1 для составных регионов (см. состав кодов регионов по классификации M49 Отдела статистики ООН). Коды для выбранных экономических и других групп не являются допустимыми.
Язык
Квалификатор language соответствует параметру языка отображения. Значения включают любой допустимый языковой тег BCP-47. Список языков см. в реестре подтегов языков IANA.
Если приложение поддерживает различные языки отображения, переместите строковые литералы из кода или разметки и в файлы ресурсов (.resw). Полное пошаговое руководство см. в разделе "Локализация строк" в манифесте пользовательского интерфейса и пакета приложения.
Как правило, language квалификатор используется для имени папок, содержащих файлы ресурсов (.resw).
\Strings\language-en\Resources.resw
\Strings\language-ja\Resources.resw
Вы можете опустить language- часть имени language квалификатора (т. е. само имя квалификатора). Это невозможно сделать с другими видами квалификаторов; и это можно сделать только в имени папки.
\Strings\en\Resources.resw
\Strings\ja\Resources.resw
Вместо именования папок можно использовать language квалификаторы для именования самих файлов ресурсов.
\Strings\Resources.language-en.resw
\Strings\Resources.language-ja.resw
Дополнительные сведения о локализации ваших приложений с использованием строковых ресурсов см. в статье "Локализация строк пользовательского интерфейса" и о том, как ссылаться на строковые ресурсы в приложении.
Направление макета
Квалификатор layoutdirection соответствует направлению макета параметра языка отображения. Например, может потребоваться зеркальное отображение изображения для языка справа налево, например арабского или иврита. Панели макета и изображения в пользовательском интерфейсе будут отвечать на направление макета соответствующим образом, если задать свойство FlowDirection (см. раздел "Настройка макета и шрифтов" и поддержка RTL). Однако квалификатор предназначен для случаев, layoutdirection когда простое переключение недостаточно, и позволяет учитывать направленность конкретного порядка чтения и выравнивания текста более универсальными способами.
Масштабировать
Windows автоматически выбирает коэффициент масштабирования для каждого дисплея на основе его DPI (точка на дюйм) и расстояния просмотра устройства. См. эффективные пиксели и коэффициент масштабирования. Вы должны создавать изображения по нескольким рекомендуемым размерам (по крайней мере 100, 200 и 400), чтобы Windows могли выбрать идеальный размер или использовать ближайший размер и масштабировать его. Чтобы Windows могла определить, какой физический файл содержит правильный размер изображения для коэффициента масштабирования дисплея, необходимо использовать квалификатор scale. Масштаб ресурса соответствует значению DisplayInformation.ResolutionScale или следующему по величине масштабируемого ресурса.
Ниже приведен пример задания квалификатора на уровне папки.
\Assets\Images\scale-100\<logo.png, and other image files>
\Assets\Images\scale-200\<logo.png, and other image files>
\Assets\Images\scale-400\<logo.png, and other image files>
И этот пример задает его на уровне файла.
\Assets\Images\logo.scale-100.png
\Assets\Images\logo.scale-200.png
\Assets\Images\logo.scale-400.png
Дополнительную информацию о квалификации ресурса для scale и targetsize, см. в разделе «Квалификация ресурса изображения для целевого размера».
Целевой размер
Квалификатор targetsize в основном используется для указания значков сопоставления типов файлов или значков протоколов, отображаемых в Проводнике. Значение параметра представляет длину стороны квадратного изображения в необработанных (физических) пикселях. Ресурс, значение которого соответствует параметру представления в Проводнике, загружается; или ресурс со следующим наибольшим значением в случае отсутствия точного соответствия.
Можно определить ресурсы, представляющие несколько размеров значения квалификатора для значка targetsize приложения (/Assets/Square44x44Logo.png) на вкладке "Визуальные ресурсы" конструктора манифеста пакета приложения.
Сведения о квалификации ресурса как scale, так и targetsize, см. в разделе Квалификация ресурса изображения для целевого размера.
Тема
Квалификатор theme используется для наилучшего соответствия ресурсов параметру режима приложения по умолчанию либо переопределению приложения с помощью Application.RequestedTheme.
Светлая тема интерфейса и неоформленные ресурсы
В обновление Windows 10 за май 2019 г. появилась новая "светлая" тема для оболочки Windows. В результате некоторые ресурсы приложений, которые ранее отображались на темном фоне, теперь будут отображаться на светлом фоне. Для приложений, которые предоставляют альтернативную форму ресурсов без стилевого оформления для переключателей панели задач и окон (Alt+Tab, Task View и т. д.), убедитесь, что они обладают достаточным контрастом на светлом фоне.
Предоставление материалов, специфичных для светлой темы
Приложения, которые хотят предоставить адаптированный ресурс для светлой темы оболочки, могут использовать новый квалификатор altform-lightunplated. Этот квалификатор зеркально отражает существующий квалификатор altform-unplated.
Рекомендации по понижению уровня
Приложения не должны использовать квалификатор theme-light вместе с квалификатором altform-unplated. Это приведет к непредсказуемому поведению в RS5 и более ранних версиях Windows из-за того, как ресурсы загружаются на панель задач. В более ранних версиях windows версия theme-light может использоваться неправильно. Квалификатор altform-lightunplated решает эту проблему.
Поведение совместимости
Для обратной совместимости Windows включает логику для обнаружения монохромных значков и проверки контрастности с предполагаемым фоном. Если значок не соответствует требованиям контрастности, Windows будет искать контрастную белую версию ресурса. Если это недоступно, Windows вернется к использованию платной версии ресурса.
Важные API
Связанные темы
- Эффективные пиксели и коэффициент масштабирования
- Управление ресурсами с помощью MRT Core
- Подготовка к локализации
- Локализация строк пользовательского интерфейса
- BCP-47
- Статистический отдел Организации Объединенных Наций M49, состав кодов регионов
- Реестр языковых подтегов IANA
- Настройка макета и шрифтов и поддержка RTL
Windows developer