Partage via


AmbientAttribute Classe

Définition

Spécifie qu’une propriété ou un type doit être traité comme ambiant. Le concept de caractère ambiant renvoie à la façon dont les processeurs XAML déterminent les propriétaires de types des membres.

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
Héritage
AmbientAttribute
Attributs

Remarques

Une propriété ambiante est une propriété où la valeur est censée être disponible dans le contexte de l’analyseur lors de la création d’un graphique d’objets, mais où la recherche de membre de type classique est suspendue aux fins du jeu de nœuds XAML immédiat en cours de création. Il existe deux scénarios main pour le concept ambiant :

  • Une autre propriété du même objet influence et qualifie le fonctionnement de cette recherche de propriété d’objet.

  • La propriété représente un mécanisme de report plus important et les fonctionnalités ambiantes de recherche d’une valeur membre s’étendent à tous les objets contenus dans l’objet actuel.

Cet attribut peut être appliqué à des propriétés spécifiques qui ont des conteneurs attendus qui activent un comportement de recherche de propriété ambiante, ou peut être appliqué à une classe pour activer le comportement de propriété ambiante dans tous les cas de ce type de valeur pour une propriété.

AmbientAttribute peut également être appliqué à une méthode CLR pour prendre en charge l’attribution d’une propriété attachable XAML comme ambiante. Cela est potentiellement nécessaire, car dans une implémentation CLR, une propriété jointe XAML est implémentée/représentée pour la réflexion en tant que modèle d’accesseur avec get les méthodes et set . Aucune propriété CLR à attribuer n’existe, donc la restriction de l’utilisation pour AttributeTargets n’aurait Property pas permis de spécifier un membre attachable comme ambiant. Pour un membre attachable que vous souhaitez signaler comme ambiant, attribuez l’accesseur get . Vous ne devez pas tenter d’attribuer des méthodes qui ne prennent pas spécifiquement en charge les méthodes des membres attachables.

Dans les versions précédentes du .NET Framework, cette classe existait dans l’assembly WindowsBase spécifique à WPF. Dans .NET Framework 4, AmbientAttribute se trouve dans l’assembly System.Xaml. Pour plus d'informations, consultez Types Migrated from WPF to System.Xaml.

Les types ambiants (types où AmbientAttribute est appliqué au niveau du type) peuvent être utilisés pour certaines situations de traitement XAML où le type d’une propriété doit être résolu dans le désordre.

Scénarios d’enregistreur d’objets

Si vous définissez un enregistreur d’objets XAML et que vous rencontrez une propriété, une méthode ou un type où AmbientAttribute est appliqué, vous devez généralement accéder à un service pour déterminer le comportement de recherche de propriété ambiante prévu qui est nécessaire pour écrire des objets. Pour plus d'informations, consultez IAmbientProvider.

Convertisseurs de valeurs

Les convertisseurs de types ou les extensions de balisage peuvent avoir besoin de connaître les informations ambiantes afin de traiter les propriétés qui représentent des mappages de types indirects, telles que des propriétés qui spécifient des membres ou des types par des noms de chaîne avec ou sans qualification. Dans ce scénario, AmbientAttribute n’est pas destiné à être utilisé directement pour la logique de code de convertisseur de valeur. Au lieu de cela, le convertisseur de valeurs doit s’appuyer sur le comportement de traitement de l’enregistreur XAML, qui passera dans ses contextes IAmbientProvider de service à vos méthodes de convertisseur de valeurs lorsqu’elles sont appelées.

Scénarios WPF pour AmbientAttribute

  • Une propriété d’un Style (TargetType) peut qualifier les recherches de noms de propriété nécessaires pour rechercher les références de stockage pour les noms de propriétés dans Setter.Property les valeurs.

  • Tout le contenu d’une Resources propriété (éléments d’un ResourceDictionary) ainsi que le contenu du modèle, doivent pouvoir accéder à d’autres homologues en tant que valeurs. La déclaration de la propriété entière Resources en tant que logique d’appel ambiant qui l’active dans l’analyseur XAML WPF.

Consultez ResourceDictionary pour obtenir un exemple de scénario pour définir AmbientAttribute au niveau du type.

Constructeurs

AmbientAttribute()

Initialise une nouvelle instance de la classe AmbientAttribute.

Propriétés

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)

Méthodes

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage de cette instance.

(Hérité de Attribute)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

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

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

(Hérité de Attribute)

S’applique à

Voir aussi