Поделиться через


IAmbientProvider Интерфейс

Определение

Представляет службу, которая может возвращать сведения о свойствах окружающей среды или внешних типах для преобразователей типов и расширений разметки.

public interface class IAmbientProvider
public interface IAmbientProvider
type IAmbientProvider = interface
Public Interface IAmbientProvider

Комментарии

Этот интерфейс представляет службу, которая может помочь преобразователям типов и расширениям разметки получить идентификаторы внешнего свойства для системы типов XAML (XamlMember объекты). Служба также может получить значения внешнего свойства из классов. Типы также могут быть внешними; любой элемент, использующий этот тип в качестве значения, должен считаться внешним.

Эта служба обычно возвращается через вызов GetService, который выполняется в отношении поставщика услуг, зависяющего от контекста. Поставщик услуг обычно доступен для контекстов, необходимых для него, таких как код выполнения преобразователя значений. Дополнительные сведения см. в разделе "Преобразователи типов" и "Расширения разметки" дляконтекстов XAML и служб, доступных для преобразователей типов и расширений разметки.

Сведения о свойствах окружающей среды

Внешнее свойство — это свойство, значение свойства которого должно быть доступно для использования преобразователя типов и расширения разметки, которые существуют в структуре узла XAML и в графе объектов, созданном из него. Это относится к обработчику XAML во время этапа записи объекта пути загрузки или этапа сериализации пути сохранения.

В случае пути загрузки значение внешнего свойства может повлиять на значение в графе объектов других свойств, которые существуют под ним в структуре узла XAML. При обработке в виде потока узлов XAML внешний вид означает, что значение внешнего свойства должно быть доступно для преобразователей типов и расширений разметки от StartObject .EndObject Аналогичным образом преобразователь типов, используемый для пути сохранения, может использовать знание внешнего свойства и его значения. Таким образом, созданный XAML является лучшим представлением кругового пути.

В целом XAML не указывает порядок обработки элементов объекта. Однако любое значение внешнего свойства сначала должно обрабатываться средством чтения XAML, чтобы преобразователь типов и расширения разметки, содержащиеся в других свойствах, могли получить к нему доступ через IAmbientProvider службу.

DependsOn — это аналогичная концепция, которая также влияет на порядок обработки узлов XAML. DependsOn Однако можно использовать только для связей одноранговых узлов и узлов. Она не может влиять на всех потомков. Кроме того, DependsOn непосредственно влияет на параметр свойства графа объектов, а внешний метод зависит от преобразователей типов или расширений разметки. В методе окружения также должен быть определенный преобразователь типов или определение расширения разметки, указывающее, как следует интерпретировать и применять значение внешнего свойства к объекту.

Заметки об использовании WPF

Сценарий внешнего свойства, иллюстрированный в наборе Style.TargetTypeфункций WPF, который может квалифицировать необходимые имена свойств для других значений. В этом случае Style.TargetType значение квалифифициирует Setter.Property значения, расположенные в узлах XAML под ним. Setter.Property использует поведение преобразователя типов для объекта DependencyProperty. Это поведение обращается к внешнему Style.TargetType значению, запрашивая GetFirstAmbientValue из контекста службы, доступного для преобразователей типов и расширений разметки.

Сценарий внешнего типа, иллюстрированный в наборе ResourceDictionaryфункций WPF. ResourceDictionary MergedDictionaries имеет свойство, которое может содержать другие ResourceDictionary объекты для слияния, и предполагаемый порядок разрешения ресурсов для объединенных сценариев столкновений с порядком загрузки типов. ResourceDictionary Применяется AmbientAttribute , чтобы обработчик XAML правильно обрабатывал ссылки в объединенном словаре с StaticResource использованием. В частности, StaticResource это расширение разметки, которое вызывает GetAllAmbientValues.

Методы

Имя Описание
GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[])

Возвращает перечислимый набор элементов сведений о внешнем свойстве для запрошенного набора типов и свойств.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

Возвращает перечислимый набор элементов сведений о внешнем свойстве для запрошенного набора свойств.

GetAllAmbientValues(XamlType[])

Возвращает перечислимый набор экземпляров объектов возможных внешних типов для запрошенных типов.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

Возвращает один элемент сведений о свойстве окружения из запрошенного набора свойств, на основе которого сначала обнаружено свойство.

GetFirstAmbientValue(XamlType[])

Возвращает первый соответствующий объект, который является возможным типом окружения для запрошенных типов.

Применяется к

См. также раздел