AmbientAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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łejResources
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) |