Расширение разметки ThemeDictionary
Предоставляет для разработчиков пользовательских элементов управления или приложений, которые объединяют элементы управления сторонних производителей, способ загрузки определенных темой словарей ресурсов для использования в стилизации элемента управления.
Использование атрибута XAML
<object property="{ThemeDictionary assemblyUri}" .../>
Использование элемента объекта XAML
<object>
<object.property>
<ThemeDictionary AssemblyName="assemblyUri"/>
<object.property>
<object>
Значения XAML
assemblyUri |
URI сборки, содержащей сведения о теме. Как правило, это URI типа pack, который ссылается на сборку в большом пакете. Ресурсы сборки и URI типа pack упрощают развертывание. Дополнительные сведения см. в разделе URI типа pack в WPF. |
Примечания
Это расширение предназначено для заполнения только одного значения конкретного свойства: значение для ResourceDictionary.Source.
Используя это расширение, можно указать единую сборку только для ресурсов, которая содержит некоторые стили для использования только в случае, если тема Windows Aero применяется к системе пользователя, другие стили при активной теме Luna и т. д. Используя это расширение, содержимое словаря ресурсов элемента управления при необходимости можно автоматически считать недействительным и перезагрузить для другой темы.
assemblyUri
Строки (AssemblyName значение свойства) является основанием для именования, определяющий, какой словарь применяется к определенной теме. ProvideValue Логику для ThemeDictionary
завершения соглашение путем создания URI , указывающий тип словаря конкретной темы, содержащийся внутри предварительно скомпилированных ресурсов сборки. Описание этого соглашения или взаимодействия темы со стилизацией основных элементов управления и стилизацией уровня страницы или приложения, как концепции, полностью в данном разделе не рассматривается. Основные сценарии использования ThemeDictionary
заключается в указании Source свойство ResourceDictionary
объявлен на уровне приложения. В случае предоставления URI для сборки посредством расширения ThemeDictionary
вместо непосредственного URI логика расширения обеспечит логику недействительности, которая применяется при каждом изменении системной темы.
Синтаксис атрибутов является наиболее распространенным синтаксисом, используемым с этим расширением разметки. Строковая лексема, указываемая после строки идентификатора ThemeDictionary
, присваивается в качестве значения AssemblyName соответствующего класса расширения ThemeDictionaryExtension.
ThemeDictionary
может также использоваться в синтаксисе элемента объекта. В этом случае укажите значение параметра AssemblyName свойство является обязательным.
ThemeDictionary
Можно также использовать в использовании атрибут verbose, который указывает Member как свойство = значение пары:
<object property="{ThemeDictionary AssemblyName=assemblyUri}" .../>
Подробное определение зачастую удобно использовать для расширений, которые имеют несколько устанавливаемых свойств, а также в том случае, если некоторые свойства являются необязательными. Так как ThemeDictionary
имеет только одно устанавливаемое свойство, которое является обязательным, это использование не является типичным.
В WPF XAML реализации обработчика обработка данного расширения разметки определяется ThemeDictionaryExtension класса.
ThemeDictionary
является расширением разметки. Расширения разметки обычно реализуются, если требуется заменить значения атрибутов на нелитеральные значения или имена обработчиков и если требуется больше, чем простая настройка преобразователей типов на работу с определенными типами или свойствами. Все расширения разметки в XAML используют символы "{" и "}" в синтаксисе их атрибутов, который является соглашением, по которому обработчик XAML распознает, что расширение разметки должно обработать атрибут. Дополнительные сведения см. в разделе Расширения разметки и XAML WPF.