AmbientAttribute Klasa

Definicja

Określa, że właściwość lub typ powinny być traktowane jako otoczenia. Koncepcja otoczenia odnosi się do sposobu, w jaki procesory XAML określają właścicieli typów członków.

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
Dziedziczenie
AmbientAttribute
Atrybuty

Uwagi

Właściwość otoczenia jest właściwością, w której wartość ma być dostępna w kontekście analizatora podczas tworzenia grafu obiektu, ale gdzie typowe wyszukiwanie składowe typu jest zawieszone na potrzeby bezpośredniego zestawu węzłów XAML tworzonego. Istnieją dwa główne scenariusze dotyczące koncepcji otoczenia:

  • Niektóre inne właściwości tego samego obiektu wpływają i kwalifikują sposób działania odnośnika właściwości obiektu.

  • Właściwość reprezentuje większy mechanizm odroczenia, a funkcje otoczenia do wyszukiwania wartości składowej rozszerzają się na wszystkie obiekty zawarte w bieżącym obiekcie.

Ten atrybut można zastosować do określonych właściwości, które mają oczekiwane kontenery, które umożliwiają zachowanie wyszukiwania właściwości otoczenia lub mogą być stosowane do klasy w celu włączenia zachowania właściwości otoczenia we wszystkich przypadkach tego typu wartości dla właściwości.

AmbientAttribute można również zastosować do metody CLR, aby obsługiwać przypisywanie właściwości dołączanej XAML jako otoczenia. Jest to potencjalnie konieczne, ponieważ w implementacji środowiska CLR dołączona właściwość XAML jest implementowana/reprezentowana do odbicia jako wzorzec dostępu z metodami get i .set Nie istnieje rzeczywista właściwość CLR do atrybutu, więc ograniczenie użycia dla elementu AttributeTargets nie Property spowodowałoby włączenia dołączanego elementu członkowskiego jako otoczenia. W przypadku dołączanego elementu członkowskiego, który chcesz zgłosić jako otoczenia, przypisz metodę get dostępu. Nie należy próbować przypisywać metod, które nie obsługują specjalnie metod dołączanych elementów członkowskich.

W poprzednich wersjach .NET Framework ta klasa istniała w bazie danych WindowsBase zestawu specyficznego dla platformy WPF. W .NET Framework 4 AmbientAttribute znajduje się w zestawie System.Xaml. Aby uzyskać więcej informacji, zobacz Typy migrowane z WPF do System.Xaml.

Typy otoczenia (typy, w których AmbientAttribute są stosowane na poziomie typu) mogą być używane w niektórych sytuacjach przetwarzania XAML, w których typ właściwości należy rozpoznać poza kolejnością.

Scenariusze zapisywania obiektów

W przypadku definiowania składnika zapisywania obiektów XAML i napotkasz właściwość, metodę lub typ, w którym AmbientAttribute jest stosowany, zazwyczaj musisz uzyskać dostęp do usługi w celu określenia zamierzonego zachowania wyszukiwania właściwości otoczenia, które jest wymagane do zapisywania obiektów. Aby uzyskać więcej informacji, zobacz IAmbientProvider.

Konwertery wartości

Konwertery typów lub rozszerzenia znaczników mogą wymagać znajomości informacji otoczenia w celu przetwarzania właściwości reprezentujących mapowania typów pośrednich, takich jak właściwości określające elementy członkowskie lub typy według nazw ciągów z lub bez kwalifikacji. W tym scenariuszu AmbientAttribute nie ma być używany bezpośrednio dla logiki kodu konwertera wartości. Zamiast tego konwerter wartości powinien polegać na zachowaniu przetwarzania modułu zapisywania XAML, które będzie przekazywane IAmbientProvider w kontekstach usługi do metod konwertera wartości po wywołaniu.

Scenariusze WPF dla elementu AmbientAttribute

  • Właściwość elementu Style (TargetType) może kwalifikować niezbędne wyszukiwania nazw właściwości, które są potrzebne do znalezienia odwołań do kopii zapasowych nazw właściwości w Setter.Property wartościach.

  • Cała zawartość w obrębie Resources właściwości (elementy elementu ResourceDictionary) oraz zawartość szablonu powinna mieć dostęp do innych elementów równorzędnych jako wartości. Deklarowanie całej Resources właściwości jako otoczenia wywołuje logikę, która umożliwia to w analizatorze XAML WPF.

Zobacz ResourceDictionary przykład scenariusza ustawiania AmbientAttribute na poziomie typu.

Konstruktory

AmbientAttribute()

Inicjuje nowe wystąpienie klasy AmbientAttribute.

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego elementu Attribute.

(Odziedziczone po Attribute)

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

W przypadku zastąpienia w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do pobrania informacji o typie interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też