AmbientAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt an, dass eine Eigenschaft oder ein Typ als Umgebung behandelt werden soll. Das Ambient-Konzept bezieht sich darauf, wie XAML-Prozessoren Typbesitzer von Mitgliedern 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
- Attribute
Hinweise
Bei einer Umgebungseigenschaft handelt es sich um eine Eigenschaft, bei der der Wert beim Erstellen eines Objektdiagramms im Parserkontext verfügbar sein wird, wobei jedoch die typische Typelementsuche für zwecke der erstellung des unmittelbaren XAML-Knotensatzes angehalten wird. Es gibt zwei Hauptszenarien für das Umgebungskonzept:
Einige andere Eigenschaften desselben Objekts beeinflussen und qualifizieren, wie die Objekteigenschaftssuche funktionieren soll.
Die Eigenschaft stellt einen größeren Verzögerungsmechanismus dar, und die Umgebungsfunktionen zum Suchen eines Memberwerts erweitern sich auf alle Objekte, die im aktuellen Objekt enthalten sind.
Dieses Attribut kann auf bestimmte Eigenschaften angewendet werden, die Container erwartet haben, die ein Umgebungseigenschaften-Nachschlageverhalten ermöglichen, 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 Attribut einer angefügten XAML-Eigenschaft als Umgebung zu unterstützen. Dies ist möglicherweise erforderlich, da in einer CLR-Implementierung eine angefügte XAML-Eigenschaft implementiert/dargestellt wird, um die Spiegelung als Accessormuster mit get und set Methoden darzustellen. Es ist keine tatsächliche CLR-Eigenschaft vorhanden, sodass die Beschränkung der Verwendung auf AttributeTargets ein Property angefügtes Element als Umgebung nicht aktiviert wäre. Für ein angefügtes Element, das Sie als Umgebung melden möchten, attributieren Sie den get Accessor. Sie sollten nicht versuchen, Methoden zu attributieren, die keine speziellen Methoden von anfügenden Membern unterstützen.
In früheren Versionen von .NET Framework war diese Klasse in der WPF-spezifischen Assembly WindowsBase vorhanden. In .NET Framework 4 AmbientAttribute befindet sich die System.Xaml-Assembly. Weitere Informationen finden Sie unter "Von WPF zu System.Xaml migrierte Typen".
Umgebungstypen (Typen, die AmbientAttribute auf Typebene angewendet werden) können für bestimmte XAML-Verarbeitungssituationen verwendet werden, in denen der Typ einer Eigenschaft außerhalb der Reihenfolge aufgelöst werden muss.
Objektschreiberszenarien
Wenn Sie einen XAML-Objektschreiber definieren und auf eine Eigenschaft, Methode oder einen Typ stoßen, auf die AmbientAttribute angewendet wird, müssen Sie in der Regel auf einen Dienst zugreifen, um das beabsichtigte Suchverhalten der Umgebungseigenschaft zu ermitteln, 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 zu verarbeiten, die indirekte Typzuordnungen darstellen, z. B. Eigenschaften, die Elemente oder Typen nach Zeichenfolgennamen mit oder ohne Qualifikation angeben. In diesem Szenario ist es nicht vorgesehen, AmbientAttribute direkt für die Codelogik des Wertkonverters zu verwenden. Stattdessen sollte der Wertkonverter auf das XAML-Writer-Verarbeitungsverhalten zurückgreifen, das bei Aufruf an die Wertkonvertermethoden übergeben wird IAmbientProvider .
WPF-Szenarien für AmbientAttribute
Eine Eigenschaft eines Style (TargetType) kann die erforderlichen Eigenschaftennamensuchvorgänge qualifizieren, die erforderlich sind, um die zugrunde stehenden Verweise für Eigenschaftsnamen in Setter.Property Werten zu finden.
Alle Inhalte innerhalb einer
ResourcesEigenschaft (Elemente einer ResourceDictionary) sowie Vorlageninhalte sollten in der Lage sein, als Werte auf andere Peers zuzugreifen. Das Deklarieren der gesamtenResourcesEigenschaft als Umgebungslogik, die dies im WPF-XAML-Parser ermöglicht.
Ein Beispiel für ein Szenario für die Einstellung auf Typebene finden Sie unter.See ResourceDictionary for an example of a scenario for setting AmbientAttribute at type level.
Konstruktoren
| Name | Beschreibung |
|---|---|
| AmbientAttribute() |
Initialisiert eine neue Instanz der AmbientAttribute-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| TypeId |
Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute. (Geerbt von Attribute) |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht. (Geerbt von Attribute) |
| GetHashCode() |
Gibt den Hashcode für diese Instanz zurück. (Geerbt von Attribute) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| IsDefaultAttribute() |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Geerbt von Attribute) |
| Match(Object) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht. (Geerbt von Attribute) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| _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 denen 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) |
Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden. (Geerbt von Attribute) |