Teilen über


AmbientAttribute Klasse

Definition

Gibt an, dass eine Eigenschaft oder ein Typ als Umgebung behandelt werden soll. Das Umgebungskonzept bezieht sich darauf, wie XAML-Prozessoren Typbesitzer von Membern bestimmen.

public ref class AmbientAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
Vererbung
AmbientAttribute
Attribute

Hinweise

Eine Ambient-Eigenschaft ist eine Eigenschaft, bei der der Wert beim Erstellen eines Objektdiagramms im Parserkontext verfügbar sein soll, bei der die typische Typ-Member-Suche jedoch für zwecke der erstellung des unmittelbaren XAML-Knotensatzes angehalten wird. Für das Umgebungskonzept gibt es zwei Standard Szenarien:

  • Eine andere Eigenschaft desselben Objekts beeinflusst und qualifiziert, wie diese Objekt-Eigenschaftssuche funktionieren soll.

  • Die -Eigenschaft stellt einen größeren Verzögerungsmechanismus dar, und die Umgebungsfunktionen zum Suchen eines Memberwerts erstrecken sich auf alle Objekte, die im aktuellen Objekt enthalten sind.

Dieses Attribut kann auf bestimmte Eigenschaften angewendet werden, die über erwartete Container verfügen, die ein Umgebungseigenschaftensuchverhalten aktivieren, oder auf eine Klasse angewendet werden, um das Umgebungseigenschaftenverhalten in allen Fällen dieses Werttyps für eine Eigenschaft zu aktivieren.

AmbientAttribute kann auch auf eine CLR-Methode angewendet werden, um das Attributieren einer anfügenden XAML-Eigenschaft als Ambient zu unterstützen. Dies ist möglicherweise erforderlich, da in einer CLR-Implementierung eine xaml angefügte Eigenschaft für die Reflektion als Accessormuster mit get und-Methoden set implementiert/dargestellt wird. Es ist keine tatsächliche CLR-Eigenschaft zum Attribut vorhanden, sodass die Einschränkung der Verwendung für AttributeTargets auf Property nicht aktiviert wäre, wenn ein anfügbarer Member als Ambient angegeben wurde. Für einen anfügenden Member, den Sie als Umgebung melden möchten, ordnen Sie den Accessor zu get . Sie sollten nicht versuchen, Methoden zu attributieren, die methoden von anfügenden Membern nicht speziell unterstützen.

In früheren Versionen des .NET Framework war diese Klasse in der WPF-spezifischen Assembly WindowsBase vorhanden. In .NET Framework 4 AmbientAttribute befindet sich in der System.Xaml-Assembly. Weitere Informationen finden Sie unter Types Migrated from WPF to System.Xaml.

Umgebungstypen (Typen, bei denen AmbientAttribute auf Typebene angewendet wird) können für bestimmte XAML-Verarbeitungssituationen verwendet werden, in denen der Typ einer Eigenschaft in der richtigen Reihenfolge aufgelöst werden muss.

Objektschreiberszenarien

Wenn Sie einen XAML-Objektschreiber definieren und eine Eigenschaft, Methode oder ein Typ AmbientAttribute angewendet wird, müssen Sie in der Regel auf einen Dienst zugreifen, um das beabsichtigte Verhalten der Umgebungseigenschaften zu bestimmen, das zum Schreiben von Objekten erforderlich ist. Weitere Informationen finden Sie unter IAmbientProvider.

Wertkonverter

Typkonverter oder Markuperweiterungen müssen möglicherweise die Umgebungsinformationen kennen, um Eigenschaften verarbeiten zu können, die indirekte Typzuordnungen darstellen, z. B. Eigenschaften, die Elemente oder Typen durch Zeichenfolgennamen mit oder ohne Qualifikation angeben. In diesem Szenario AmbientAttribute ist nicht für die direkte Verwendung für die Codelogik des Wertkonverters vorgesehen. Stattdessen sollte der Wertkonverter auf dem Verarbeitungsverhalten des XAML-Writers basieren, das in seinen Dienstkontexten an Ihre Wertkonvertermethoden übergeben IAmbientProvider wird, wenn sie aufgerufen werden.

WPF-Szenarien für AmbientAttribute

  • Eine Eigenschaft eines Style (TargetType) kann die erforderlichen Eigenschaftennamenssuche qualifizieren, die erforderlich sind, um die Unterstützenden Verweise für Eigenschaftsnamen in Setter.Property Werten zu finden.

  • Alle Inhalte innerhalb einer Resources Eigenschaft (Elemente eines ResourceDictionary) sowie Vorlageninhalte sollten als Werte auf andere Peers zugreifen können. Das Deklarieren der gesamten Resources Eigenschaft als Ambient ruft Logik auf, die dies im WPF-XAML-Parser aktiviert.

Ein Beispiel für ein Szenario zum Festlegen AmbientAttribute auf Typebene finden Sie ResourceDictionary unter.

Konstruktoren

AmbientAttribute()

Initialisiert eine neue Instanz der AmbientAttribute-Klasse.

Eigenschaften

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen