AmbientAttribute Třída

Definice

Určuje, že vlastnost nebo typ by měly být považovány za okolí. Koncept okolí souvisí s tím, jak procesory XAML určují vlastníky typů členů.

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
Dědičnost
AmbientAttribute
Atributy

Poznámky

Okolí vlastnost je vlastnost, kde se očekává, že hodnota bude k dispozici v kontextu analyzátoru při vytváření objektového grafu, ale kde je typické vyhledávání člena typu pozastaveno pro účely vytváření okamžité sady uzlů XAML. Pro koncept okolí existují dva hlavní scénáře:

  • Některé další vlastnosti stejného objektu ovlivňují a kvalifikují, jak má vyhledávání vlastností objektu fungovat.

  • Vlastnost představuje větší odložený mechanismus a okolí schopností pro vyhledání hodnoty členu rozšířit na všechny objekty obsažené v aktuálním objektu.

Tento atribut lze použít u konkrétních vlastností, které mají očekávané kontejnery, které umožňují chování okolního vyhledávání vlastností, nebo lze použít u třídy k povolení chování okolí vlastnosti ve všech případech tohoto typu hodnoty pro vlastnost.

AmbientAttribute lze také použít u metody CLR, která podporuje přiřazení připojitelné vlastnosti XAML jako okolí. To je potenciálně nezbytné, protože v implementaci CLR je implementovaná/reprezentovaná vlastnost XAML k reflexi jako vzor příslušenství s metodami get a set metody. Neexistuje žádná skutečná vlastnost CLR atributu, takže omezení použití na AttributeTargets to Property by nepovolilo určení připojitelného členu jako okolí. Pro připojitelný člen, který chcete hlásit jako okolí, přiřazovat get příslušenství. Neměli byste se pokoušet o metody atributů, které nejsou výslovně podporovány metodami připojitelných členů.

V předchozích verzích rozhraní .NET Framework existovala tato třída v sestavení wpF specifickém pro WindowsBase. V rozhraní .NET Framework 4 AmbientAttribute je v sestavení System.Xaml. Další informace naleznete v tématu Typy migrované z WPF do System.Xaml.

Okolní typy (typy, u kterých AmbientAttribute se používá na úrovni typu), je možné použít pro určité situace zpracování XAML, kdy je potřeba typ vlastnosti vyřešit mimo pořadí.

Scénáře zapisovače objektů

Pokud definujete zapisovač objektů XAML a narazíte na vlastnost, metodu nebo typ, kde AmbientAttribute se používá, obvykle musíte přistupovat ke službě, abyste zjistili zamýšlené chování vyhledávání okolní vlastnosti, které je potřeba k zápisu objektů. Další informace najdete na webu IAmbientProvider.

Převaděče hodnot

Převaděče typů nebo rozšíření značek mohou potřebovat znát okolní informace, aby bylo možné zpracovat vlastnosti, které představují mapování nepřímých typů, například vlastnosti, které určují členy nebo typy podle názvů řetězců s nebo bez kvalifikace. V tomto scénáři AmbientAttribute není určeno k použití přímo pro logiku kódu převaděče hodnot. Převaděč hodnot by se měl spoléhat na chování zpracování zapisovače XAML, které při zavolání předá IAmbientProvider kontexty služby metodám převaděče hodnot.

Scénáře WPF pro AmbientAttribute

  • Vlastnost Style (TargetType) může kvalifikovat potřebné vyhledávání názvů vlastností, které jsou potřeba k vyhledání zpětných odkazů na názvy vlastností v Setter.Property hodnotách.

  • Veškerý obsah v rámci Resources vlastnosti (položky ResourceDictionary) a také obsah šablony by měl mít přístup k jiným partnerským vztahům jako hodnotám. Deklarace celé Resources vlastnosti jako okolí vyvolá logiku, která to umožňuje v analyzátoru WPF XAML.

Příklad ResourceDictionary scénáře pro nastavení AmbientAttribute na úrovni typu

Konstruktory

Name Description
AmbientAttribute()

Inicializuje novou instanci AmbientAttribute třídy.

Vlastnosti

Name Description
TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Name Description
Equals(Object)

Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí kód hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro

Viz také