IAmbientProvider Schnittstelle

Definition

Stellt einen Dienst dar, von dem Informationselemente zu Ambient-Eigenschaften oder Ambient-Typen an Typkonverter und Markuperweiterungen zurückgegeben werden können.

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

Hinweise

Diese Schnittstelle stellt den Dienst dar, der Konverter und Markuperweiterungen unterstützen kann, um die Umgebungseigenschaftsbezeichner für das XAML-Typsystem (XamlMember Objekte) abzurufen. Der Dienst kann auch die Umgebungseigenschaftswerte aus Klassen abrufen. Typen können auch Umgebung sein; Jedes Element, das diesen Typ als Wert verwendet, sollte als Umgebung betrachtet werden.

Dieser Dienst wird in der Regel über einen Aufruf GetServicezurückgegeben, der gegen einen kontextspezifischen Dienstanbieter vorgenommen wird. Der Dienstanbieter ist allgemein für Kontexte verfügbar, die es benötigen, z. B. den Ausführungscode eines Wertkonverters. Weitere Informationen finden Sie unter Typkonverter und Markuperweiterungen für XAML- und Dienstkontexte, die für Typkonverter und Markuperweiterungen verfügbar sind.

Informationen zu Umgebungseigenschaften

Eine Umgebungseigenschaft ist eine Eigenschaft, deren Eigenschaftswert verfügbar sein sollte, um Konverter- und Markuperweiterungsverwendungen einzugeben, die in der XAML-Knotenstruktur und im objektdiagramm vorhanden sind, das darin erstellt wurde. Dies ist für einen XAML-Prozessor während der Objektschreibungsphase des Ladepfads oder der Serialisierungsphase eines Speicherpfads relevant.

Im Lastenpfadfall kann der Umgebungseigenschaftswert den Wert im Objektdiagramm anderer Eigenschaften beeinflussen, die unter dieser in einer XAML-Knotenstruktur vorhanden sind. Beim Verarbeiten als XAML-Knotendatenstrom bedeutet das Umgebungskonzept, dass der Umgebungseigenschaftswert verfügbar sein muss, um Konverter und Markuperweiterungen von StartObject zu EndObjectzu eingeben. Ähnlich kann ein Typkonverter, der für den Speicherpfad verwendet wird, Wissen über die Umgebungseigenschaft und seinen Wert verwenden. Daher ist der XAML-Code, der erstellt wird, eine bessere Roundtrip-Darstellung.

Für Elemente im Allgemeinen gibt XAML nicht die Reihenfolge an, in der Elemente eines Objekts verarbeitet werden müssen. Jeder Umgebungseigenschaftswert muss jedoch zuerst vom XAML-Reader verarbeitet werden, damit der Typkonverter und die Markuperweiterungsverwendungen, die in anderen Eigenschaften enthalten sind, über den IAmbientProvider Dienst zugreifen können.

DependsOn ist ein ähnliches Konzept, das auch die XAML-Knotenverarbeitungsreihenfolge beeinflusst. DependsOn Es kann jedoch nur für Peer-Member- und Knotenbeziehungen verwendet werden. Es kann jedoch nicht alle Untergeordneten beeinflussen. DependsOn Beeinflusst auch die Einstellung der Objektdiagrammeigenschaft direkt. Während die Umgebungstechnik auf Typkonverter oder Markuperweiterungen basiert. In der Umgebungstechnik muss auch eine bestimmte Typkonverter- oder Markuperweiterungsdefinition vorhanden sein, die angibt, wie der Umgebungseigenschaftswert interpretiert und auf das Objekt angewendet werden soll.

Hinweise zur WPF-Verwendung

Ein Umgebungseigenschaftsszenario, das im WPF-Featuresatz veranschaulicht wird, ist Style.TargetType, was die erforderlichen Eigenschaftennamen-Nachschlagevorgänge für andere Werte qualifizieren kann. In diesem Fall qualifiziert der Style.TargetType Wert die Werte, die Setter.Property sich in den XAML-Knoten darunter befinden. Setter.Property verwendet das Typkonverterverhalten für eine DependencyProperty. Dieses Verhalten greift auf den Umgebungswert Style.TargetType zu, indem GetFirstAmbientValue er von einem Dienstkontext abfragt, der für die Eingabe von Konvertern und Markuperweiterungen verfügbar ist.

Ein Umgebungstypszenario, das im WPF-Featuresatz veranschaulicht wird, ist ResourceDictionary. ResourceDictionary verfügt über eine MergedDictionaries Eigenschaft, die andere ResourceDictionary Objekte enthalten kann, die zusammengeführt werden sollen, und die beabsichtigte Reihenfolge der Ressourcenauflösung für das zusammengeführte Szenario kollidiert mit der Reihenfolge, die Typen geladen werden. ResourceDictionary Gilt AmbientAttribute , damit ein XAML-Prozessor die Verweise in einem zusammengeführten Wörterbuch mit StaticResource Verwendungen ordnungsgemäß verarbeiten kann. StaticResource Insbesondere handelt es sich um eine Markuperweiterung, die aufgerufen wirdGetAllAmbientValues.

Methoden

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

Gibt einen aufzählbaren Satz von Ambient-Eigenschaftsinformationselementen für den angeforderten Satz von Typen und Eigenschaften zurück.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

Gibt einen aufzählbaren Satz von Ambient-Eigenschaftsinformationselementen für den angeforderten Eigenschaftssatz zurück.

GetAllAmbientValues(XamlType[])

Gibt einen aufzählbaren Satz von Objektinstanzen möglicher Ambient-Typen für die angeforderten Typen zurück.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

Gibt ein einzelnes Ambient-Eigenschaftsinformationselement vom angeforderten Eigenschaftssatz zurück. Dies ist abhängig von der zuerst gefundenen Eigenschaft.

GetFirstAmbientValue(XamlType[])

Gibt das erste übereinstimmende Objekt zurück, bei dem es sich um einen möglichen Ambient-Typ für die angeforderten Typen handelt.

Gilt für

Siehe auch