Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если у вашего приложения нет ресурсов, соответствующих определенным параметрам клиентского устройства, используются ресурсы по умолчанию. В этом разделе объясняется, как указать, что представляют собой ресурсы по умолчанию.
Когда клиент устанавливает приложение из Microsoft Store, параметры на устройстве клиента сопоставляются с доступными ресурсами приложения. Это сопоставление выполняется таким образом, чтобы для этого пользователя нужно скачать и установить только соответствующие ресурсы. Например, используются наиболее подходящие строки и изображения для языковых настроек пользователя, а также параметры разрешения и DPI устройства. Например, 200
— это значение по умолчанию для scale
, но вы можете его переопределить, если хотите.
Даже для ресурсов, которые не попадают в собственные пакеты ресурсов (например, изображения, адаптированные для параметров высокой контрастности), можно указать, какие ресурсы по умолчанию приложение должно использовать во время выполнения, если ресурс, соответствующий параметрам пользователя, не найден. Например, standard
— это значение по умолчанию для contrast
, но вы можете его переопределить, если хотите.
Эти значения по умолчанию указываются в виде значений квалификатора ресурсов по умолчанию. Для объяснения того, что такое квалификаторы ресурсов, а также их использования и назначения, см. раздел Настройка ресурсов для языка, масштабирования, высокой контрастности и других квалификаторов.
Эти значения по умолчанию можно настроить одним из двух способов. Вы можете добавить файл конфигурации в проект или изменить файл проекта напрямую. Используйте любой из этих вариантов, который вам наиболее удобен или лучше всего подходит для вашей системы сборки.
Вариант 1. Используйте priconfig.default.xml для указания значений квалификатора по умолчанию
В Visual Studio добавьте новый элемент в проект. Выберите XML-файл и назовите файл
priconfig.default.xml
.В обозревателе решений выберите
priconfig.default.xml
и проверьте окно "Свойства". Действие сборки файла должно иметь значение None, а для копирования в выходной каталог должно быть задано значение "Не копировать".Замените содержимое файла этим XML-кодом.
<default> <qualifier name="Language" value="LANGUAGE-TAG(S)" /> <qualifier name="Contrast" value="standard" /> <qualifier name="Scale" value="200" /> <qualifier name="HomeRegion" value="001" /> <qualifier name="TargetSize" value="256" /> <qualifier name="LayoutDirection" value="LTR" /> <qualifier name="DXFeatureLevel" value="DX9" /> <qualifier name="Configuration" value="" /> <qualifier name="AlternateForm" value="" /> </default>
Заметка Значение
LANGUAGE-TAG(S)
должно быть синхронизировано с языком вашего приложения по умолчанию. Если это одиночный тег языка BCP-47, то язык по умолчанию приложения должен соответствовать этому тегу. Если это разделенный запятыми список тегов языка, язык по умолчанию приложения должен быть первым тегом в списке. Язык по умолчанию приложения установлен в поле Язык по умолчанию на вкладке Приложение в файле манифеста пакета приложения (Package.appxmanifest
).Каждый элемент
<qualifier>
сообщает Visual Studio, какое значение следует использовать в качестве значения по умолчанию для каждого имени квалификатора. С содержанием файла, которое у вас уже есть, на самом деле вы не изменили поведение Visual Studio. Другими словами, Visual Studio уже вел себя так, как если бы этот файл существовал с таким содержимым, поскольку это значения по умолчанию. Таким образом, чтобы переопределить значение по умолчанию с собственным значением по умолчанию, необходимо изменить значение в файле. Ниже приведен пример того, как файл может выглядеть, если вы отредактировали первые три значения.<default> <qualifier name="Language" value="de-DE" /> <qualifier name="Contrast" value="black" /> <qualifier name="Scale" value="400" /> <qualifier name="HomeRegion" value="001" /> <qualifier name="TargetSize" value="256" /> <qualifier name="LayoutDirection" value="LTR" /> <qualifier name="DXFeatureLevel" value="DX9" /> <qualifier name="Configuration" value="" /> <qualifier name="AlternateForm" value="" /> </default>
Сохраните и закройте файл и перестроите проект.
Чтобы убедиться, что ваши переопределенные значения по умолчанию учитываются, найдите файл <ProjectFolder>\obj\<ReleaseConfiguration folder>\priconfig.xml
и убедитесь, что его содержимое соответствует вашим переопределениям. Если это так, вы успешно настроили значения квалификаторов ресурсов, которые ваше приложение будет использовать по умолчанию. Если совпадение параметров пользователя не найдено, будут использоваться те ресурсы, чьи папки или имена файлов содержат значения квалификатора по умолчанию, заданные здесь.
Как это работает?
За кулисами Visual Studio запускает инструмент с именем MakePri.exe
для создания файла, известного как индекс ресурсов пакета (PRI), который описывает все ресурсы вашего приложения, включая указание того, какие ресурсы по умолчанию являются ресурсами по умолчанию. Дополнительные сведения об этом средстве см. в статье "Компиляция ресурсов вручную с помощью MakePri.exe". Visual Studio передает файл конфигурации в MakePri.exe
. Содержимое файла priconfig.default.xml
используется в качестве элемента <default>
этого файла конфигурации, которая является частью, указывающей набор значений параметров идентификатора, которые считаются значениями по умолчанию. Поэтому добавление и редактирование priconfig.default.xml
в конечном счете влияет на содержимое файла индекса ресурсов пакета, который Visual Studio создает для приложения и включает в свой пакет приложения.
Примечание Всякий раз, когда вы изменяете значение элемента <qualifier name="Language" ... />
, необходимо синхронизировать это изменение с языком приложения по умолчанию. Это так, чтобы языковые ресурсы, индексированные в файле PRI приложения, соответствовали языку манифеста вашего приложения по умолчанию. Значение в элементе <qualifier name="Language" ... />
переопределяет значение в манифесте относительно содержимого <ProjectFolder>\obj\<ReleaseConfiguration folder>\priconfig.xml
, но этот файл и манифест приложения должны совпадать.
Использование другого имени файла, отличного от имени priconfig.default.xml
Если вы назовете файл priconfig.default.xml
, Visual Studio распознает его и будет автоматически использовать его. Если вы присвоите ему другое название, вам потребуется сообщить об этом Visual Studio. В файле проекта между открывающим и закрывающим тегами первого <PropertyGroup>
элемента добавьте этот XML-файл.
<AppxPriConfigXmlDefaultSnippetPath>FILE-PATH-AND-NAME</AppxPriConfigXmlDefaultSnippetPath>
Замените FILE-PATH-AND-NAME
на путь к файлу и его имя.
Вариант 2. Используйте файл проекта для указания значений квалификатора по умолчанию
Это альтернатива варианту 1. После того как вы узнаете, как работает вариант 1, можно выбрать вариант 2 вместо этого, если это подходит для разработки и (или) рабочего процесса сборки.
В файле проекта между открывающим и закрывающим тегами первого <PropertyGroup>
элемента добавьте этот XML-файл.
<AppxDefaultResourceQualifiers>Language=LANGUAGE-TAG(S)|Contrast=standard|Scale=200|HomeRegion=001|TargetSize=256|LayoutDirection=LTR|DXFeatureLevel=DX9|Configuration=|AlternateForm=</AppxDefaultResourceQualifiers>
Ниже приведен пример того, как это может выглядеть после изменения первых трех значений.
<AppxDefaultResourceQualifiers>Language=de-DE|Contrast=black|Scale=400|HomeRegion=001|TargetSize=256|LayoutDirection=LTR|DXFeatureLevel=DX9|Configuration=|AlternateForm=</AppxDefaultResourceQualifiers>
Сохраните и закройте, затем перестройте проект.
Заметка При изменении Language=
значения необходимо синхронизировать это изменение с языком по умолчанию приложения в конструкторе манифестов (открывая Package.appxmanifest
).