Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет значение для любого атрибута 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. Значение ресурса будет найдено путём поиска ключа по всем активным словарям ресурсов, начиная с текущей области видимости страницы, и заменено выражением-заполнителем, используемым при компиляции.
Это важно
С точки зрения приоритета свойств зависимостей выражение DynamicResource
эквивалентно позиции, в которой применяется динамическая ссылка на ресурсы. Если задать локальное значение для свойства, которое ранее имело выражение DynamicResource
в качестве локального значения, DynamicResource
полностью удаляется. Дополнительные сведения см. в разделе Приоритет значения свойства зависимостей.
Некоторые сценарии доступа к ресурсам особенно подходят для DynamicResource
в отличие от расширения staticResource Markup. См. в
Указанный ResourceKey должен соответствовать существующему ресурсу, определенному директивой x:Key на одном из уровней вашей страницы, приложения, доступных тем оформления, внешних или системных ресурсов, и поиск ресурсов будет выполняться в этом порядке. Дополнительные сведения о поиске статических и динамических ресурсов см. в разделе ресурсов XAML .
Ключ ресурса может быть любой строкой, определенной в грамматике XamlName. Ключ ресурса также может быть другими типами объектов, например Type. Ключ Type является фундаментальным для того, как темы могут стилизовать элементы управления. Для получения дополнительной информации см. Обзор разработки элементов управления.
API для поиска значений ресурсов, таких как FindResource, использует ту же логику поиска ресурсов, что и DynamicResource
.
Альтернативным декларативным средством ссылки на ресурс является расширение разметки staticResource.
Синтаксис атрибутов — это наиболее распространенный синтаксис, используемый с этим расширением разметки. Строковый токен, предоставленный после строкового идентификатора DynamicResource
, назначается в качестве значения ResourceKey базового класса расширения DynamicResourceExtension.
DynamicResource
можно использовать в синтаксисе элемента объекта. В этом случае необходимо указать значение свойства ResourceKey.
DynamicResource
также можно использовать в атрибуте с подробным описанием, указывающем свойство ResourceKey в виде пары свойство=значение.
<object property="{DynamicResource ResourceKey=key}" ... />
Подробное описание часто полезно для расширений, имеющих больше одного настраиваемого свойства, или если некоторые свойства являются необязательными. Так как DynamicResource
имеет только одно настраиваемое свойство, и оно является обязательным, такой многословный способ использования не является типичным.
В реализации обработчика XAML WPF обработка этого расширения разметки определяется классом DynamicResourceExtension.
DynamicResource
— это расширение разметки. Расширения разметки обычно реализуются, если существует требование для исключения значений атрибутов, отличных от литеральных значений или имен обработчиков, и это требование является более общим, чем использование преобразователей типов для конкретных типов или свойств. Все расширения разметки в XAML используют символы { и } в синтаксисе атрибутов, что является соглашением, с помощью которого обработчик XAML распознает, что расширение разметки должно обрабатывать атрибут. Дополнительные сведения см. в разделе "Расширения разметки" и"WPF XAML".
См. также
- XAML-ресурсы
- Ресурсы и Код
- директива x:Key
- XAML в WPF
- Расширения разметки и XAML WPF
- Статическое расширение ресурсов разметки
- Расширения разметки и XAML WPF
.NET Desktop feedback