Sdílet prostřednictvím


IAmbientProvider Rozhraní

Definice

Představuje službu, která může vracet informace o okolních vlastnostech nebo okolních typech pro převaděče typů a rozšíření značek.

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

Poznámky

Toto rozhraní představuje službu, která může pomoci typů převaděčů a rozšíření značek získat identifikátory okolní vlastnosti pro systém typů XAML (XamlMember objekty). Služba může také získat hodnoty okolní vlastnosti z tříd. Typy mohou být také okolí; každý člen, který používá tento typ jako jeho hodnotu, by měl být považován za okolí.

Tato služba se obvykle vrací voláním GetService, které se provádí v kontextu konkrétního poskytovatele služeb. Poskytovatel služeb je obecně dostupný pro kontexty, které ho potřebují, například kód spuštění převaděče hodnot. Další informace najdete v tématu Převaděče typů a rozšíření značek pro kontexty XAML a služby dostupné pro převaděče typů a rozšíření značek.

O okolních vlastnostech

Okolí vlastnost je vlastnost, jejíž hodnota vlastnosti by měla být k dispozici pro použití převaděče a značek rozšíření, které existují ve struktuře uzlu XAML a v objektovém grafu vytvořeném z něj. To je relevantní pro procesor XAML během fáze zápisu objektu cesty načtení nebo serializace fáze uložení cesty.

V případě cesty načtení může hodnota okolní vlastnosti ovlivnit hodnotu v grafu objektů jiných vlastností, které jsou pod ní ve struktuře uzlu XAML. Při zpracování jako stream uzlu XAML koncept znamená, že okolní vlastnost hodnota musí být k dispozici pro převaděče typů a rozšíření značek z StartObject EndObject. Podobně může převaděč typů, který se používá pro cestu uložení, používat znalosti okolí vlastnosti a jeho hodnoty. Proto je vytvářený XAML lepší reprezentací odezvy.

Obecně platí, že XAML nezadává pořadí, ve kterém musí být zpracovány členy objektu. Jakákoli hodnota okolní vlastnosti však musí být nejprve zpracována čtenářem XAML, aby k němu IAmbientProvider prostřednictvím služby měl přístup převaděč typů a rozšíření značek, které jsou obsaženy v jiných vlastnostech.

DependsOn je podobný koncept, který ovlivňuje také pořadí zpracování uzlů XAML. DependsOn Lze však použít pouze pro vztahy mezi členy partnerského vztahu a uzly. Nemůže ovlivnit všechny potomky. DependsOn Také přímo ovlivňuje nastavení vlastností objektu; zatímco okolní technika spoléhá na převaděče typů nebo rozšíření značek. V okolní technice musí existovat také specifická definice převaděče typů nebo rozšíření značek, která určuje, jak má být okolní hodnota vlastnosti interpretována a aplikována na objekt.

Poznámky k využití WPF

Scénář okolní vlastnosti, který je znázorněn v sadě funkcí WPF je Style.TargetType, který může kvalifikovat potřebné vyhledávání názvu vlastnosti pro jiné hodnoty. V tomto případě Style.TargetType tato hodnota kvalifikuje Setter.Property hodnoty umístěné v uzlech XAML pod ní. Setter.Property používá chování převaděče typů pro DependencyProperty. Toto chování přistupuje k okolní Style.TargetType hodnotě dotazováním GetFirstAmbientValue z kontextu služby, který je k dispozici pro převaděče typů a rozšíření značek.

Scénář okolního typu, který je znázorněn v sadě funkcí WPF je ResourceDictionary. ResourceDictionaryMergedDictionaries má vlastnost, která může obsahovat další ResourceDictionary objekty ke sloučení, a zamýšlené pořadí řešení prostředků pro sloučený scénář koliduje s pořadím, ve které jsou typy načteny. ResourceDictionary použije AmbientAttribute k tomu, aby procesor XAML mohl správně zpracovávat odkazy ve sloučeného slovníku s StaticResource využitím. Konkrétně jde o rozšíření značek, StaticResource které volá GetAllAmbientValues.

Metody

GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[])

Vrátí výčtovou sadu položek informací o okolní vlastnosti pro požadovanou sadu typů a vlastností.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

Vrátí výčtovou sadu položek informací o okolní vlastnosti pro požadovanou sadu vlastností.

GetAllAmbientValues(XamlType[])

Vrátí výčtovou sadu instancí objektů možných okolních typů požadovaných typů.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

Vrátí položku informací o jedné okolní vlastnosti z požadované sady vlastností na základě toho, která vlastnost je poprvé zjištěna.

GetFirstAmbientValue(XamlType[])

Vrátí první odpovídající objekt, který je možným okolním typem požadovaných typů.

Platí pro

Viz také