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