Application.Resources Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает коллекцию ресурсов области приложения, таких как стили, шаблоны и кисти.
ResourceDictionary Resources();
void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = application.resources;
application.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<Application>
<Application.Resources>
oneOrMoreResourceElements
</Application.Resources>
</Application>
Значение свойства
Объект ResourceDictionary , содержащий ноль или более ресурсов в области приложения.
Примеры
В этом примере показано, как объявить ресурс для конкретного приложения (он создает общий экземпляр класса преобразователя, который поступает из начальных шаблонов). Затем он добавляет элемент свойства Application.MergedDictionaries с элементами ResourceDictionary внутри, каждый из которых ссылается на XAML-файл по универсальному коду ресурса (URI ) в качестве источника.
<Application.Resources>
<ResourceDictionary>
<common:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="rd1.xaml" />
<ResourceDictionary Source="rd2.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Комментарии
Модель словаря ресурсов в среда выполнения Windows поддерживает многие понятия ресурсов XAML, с которыми вы знакомы, если вы создали приложения с помощью Windows Presentation Foundation (WPF) или Microsoft Silverlight. Подробнее: ResourceDictionary и ссылки на ресурсы XAML.
Ресурсы, определенные в ResourceDictionary , который заполняет Application.Resources
элемент свойства, доступны для получения с любой страницы приложения. Это удобно, если многие страницы приложения используют один и тот же ресурс. Например, если у вас есть ресурс SolidColorBrush , который используется для цветовых схем в пользовательском интерфейсе приложения, и этот цвет используется на большинстве страниц, имеет смысл объявить SolidColorBrush в объекте Application.Resources
, используемом для Application.Resources
.
При добавлении ресурсов в Application.Resources
добавьте их до или после любого существующего ResourceDictionary.MergedResources
. Правила XAML не позволяют помещать содержимое на обе стороны тега элемента свойства. Дополнительные сведения см. в руководстве по синтаксису XAML.
Примечания для предыдущих версий
Оптимизация загрузки ресурсов в Windows 8.1
Начиная с Windows 8.1, существует оптимизация загрузки ресурсов, которая включена моделью приложения и синтаксический анализатор среда выполнения Windows XAML. Для Windows 8 средство синтаксического анализа XAML загружало ресурсы из app.xaml и создавало каждый из них как объекты в процессе запуска. Это было не очень эффективно, если бы там были большие словари. Кроме того, эти ресурсы включали элементы, необходимые для всех трех тем, и две из трех тем даже не были активными. Начиная с Windows 8.1, средство синтаксического анализа XAML создает ресурсы только при их специальном запросе. Запрос может поступать из других ресурсов или из XAML приложения или страницы при загрузке каждого из них. Такое поведение средства синтаксического анализа сводит к минимуму время, необходимое для чтения словаря уровня приложения во время запуска, и в большинстве случаев позволяет быстрее загружать первую страницу приложения. Ресурсы, необходимые для других неактивных в настоящее время тем, загружаются только в том случае, если эта тема выбрана пользователем в качестве активной темы. В то время любой ресурс, в котором для запроса использовалось расширение разметки {ThemeResource} , пересчитывается на основе новой активной темы.
Работа в Windows 8
Windows 8 не имели описанных выше оптимизаций. ResourceDictionary для Application.Resources
должен был завершить синтаксический анализ, прежде чем любая страница, кроме экрана-заставки, могла загрузиться в окно приложения. Из-за этого при перенацелии приложения на Windows 8.1 вы можете столкнуться с некоторыми различиями во времени. Приложение должно загружаться быстрее, однако невозможно изолировать это улучшение по сравнению с другими изменениями, которые вы внесли в код приложения в рамках перенацеливание. Некоторые из мест, где можно увидеть изменения времени из-за оптимизированной загрузки ресурсов, включают, когда конструкторы вызываются синтаксический анализатор, для таких объектов, как объекты приложения , преобразователи или другие пользовательские классы. Приложения, которые скомпилированы для Windows 8, но выполняются в Windows 8.1, продолжают использовать правила, действующие в Windows 8.
Дополнительные сведения о производительности и факторинге ресурсов XAML см. в статье Оптимизация разметки XAML.