Расширение разметки DynamicResource
Предоставляет значение для любого XAML свойства атрибута, отложенной до был ссылкой на определенный ресурс. Поведение подстановки для этого ресурса является аналогом во время выполнения.
Использование атрибута XAML
<object property="{DynamicResource key}" .../>
Использование элемента свойства XAML
<object>
<object.property>
<DynamicResource ResourceKey="key" .../>
</object.property>
</object>
Значения XAML
key |
Ключ для запрашиваемого ресурса. Этот ключ была изначально назначена по директивы x: Key Если ресурс был создан в разметке или был предоставлен в виде key параметра при вызове ResourceDictionary.Add Если ресурс был создан в коде. |
Примечания
Объект DynamicResource
создаст временное выражение во время первоначальной компиляции и таким образом, отложит для ресурсов, пока значение запрошенного ресурса не нужен для создания объекта. Потенциально это может быть после XAML загрузки страницы. Значение ресурса будет находиться на основе ключа поиска для всех словарей ресурсов active, начиная с текущей области страницы и заменяется выражением заполнитель из компиляции.
Important
С точки зрения приоритет свойств зависимостей DynamicResource
выражение эквивалентно позицию, где применяется ссылка на динамический ресурс. Если вы задано локальное значение для свойства, которое ранее было DynamicResource
выражение в качестве локального значения DynamicResource
полностью удаляется. Дополнительные сведения см. в разделе Приоритет значений свойств зависимостей.
Особенно подходит для определенных сценариев доступа к ресурсу DynamicResource
в отличие от расширение разметки StaticResource. См. в разделе ресурсы XAML обсуждение относительных достоинствах и последствия для производительности DynamicResource
и StaticResource
.
Указанный ResourceKey должен соответствовать существующего ресурса определяется директивы x: Key на определенном уровне страницы, приложения, доступный элемент управления темы и внешним ресурсам или системных ресурсов и Поиск ресурсов будет происходить в указанном порядке. Дополнительные сведения о поиске ресурсов для статических и динамических ресурсов, см. в разделе ресурсы XAML.
Ключ ресурса может быть любой строкой, определенные в Грамматика XamlName. Ключ ресурса также может быть других типов объектов, например Type. Объект Type ключ — это основа для как можно применить различные стили элементов управления темы. Дополнительные сведения см. в разделе Общие сведения о разработке элементов управления.
API для поиска значений ресурсов таких как FindResource, выполните ту же логику поиска ресурсов, используемой средой DynamicResource
.
Декларативные альтернативные методы ссылкой на ресурс — как расширение разметки StaticResource.
Синтаксис атрибутов является наиболее распространенным синтаксисом, используемым с этим расширением разметки. Строковая лексема, указываемая после строки идентификатора DynamicResource
, присваивается в качестве значения ResourceKey соответствующего класса расширения DynamicResourceExtension.
DynamicResource
может использоваться в синтаксисе элемента объекта. В этом случае укажите значение параметра ResourceKey свойство является обязательным.
DynamicResource
Можно также использовать в использовании атрибут verbose, который указывает ResourceKey как свойство = значение пары:
<object property="{DynamicResource ResourceKey=key}" .../>
Подробное определение зачастую удобно использовать для расширений, которые имеют несколько устанавливаемых свойств, а также в том случае, если некоторые свойства являются необязательными. Так как DynamicResource
имеет только одно устанавливаемое свойство, которое является обязательным, это использование не является типичным.
В WPF XAML реализации обработчика обработка данного расширения разметки определяется DynamicResourceExtension класса.
DynamicResource
является расширением разметки. Расширения разметки обычно реализуются, если требуется заменить значения атрибутов на нелитеральные значения или имена обработчиков и если требуется больше, чем простая настройка преобразователей типов на работу с определенными типами или свойствами. Все расширения разметки в XAML используют символы "{" и "}" в синтаксисе их атрибутов, который является соглашением, по которому обработчик XAML распознает, что расширение разметки должно обработать атрибут. Дополнительные сведения см. в разделе Расширения разметки и XAML WPF.