AmbientAttribute Classe

Définition

Spécifie qu’une propriété ou un type doit être traité comme ambiant. Le concept ambiant concerne la façon dont les processeurs XAML déterminent les propriétaires de types de 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 d’analyseur lors de la création d’un graphique d’objet, mais où la recherche de membre de type classique est suspendue à des fins de création de l’ensemble de nœuds XAML immédiat en cours de création. Il existe deux scénarios principaux pour le concept ambiant :

  • Une autre propriété du même objet influence et qualifie la façon dont cette recherche de propriété d’objet doit fonctionner.

  • La propriété représente un mécanisme de report plus grand et les fonctionnalités ambiantes pour rechercher 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 peuvent être appliqués à une classe pour activer le comportement de propriété ambiante dans tous les cas de ce type 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 à la réflexion en tant que modèle d’accesseur avec get et set de méthodes. Aucune propriété CLR réelle à attribut n’existe. Par conséquent, la restriction de l’utilisation pour AttributeTargets laquelle Property elle n’aurait pas activé la spécification d’un membre pouvant être attaché comme ambiante. Pour un membre joignable 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 de membres pouvant être attachés.

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 migrés de WPF vers System.Xaml.

Les types ambiants (types appliqués AmbientAttribute 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 hors ordre.

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 AmbientAttribute où il est appliqué, vous devez généralement accéder à un service pour déterminer le comportement de recherche de propriété ambiante prévu 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 pour traiter les propriétés qui représentent des mappages de types indirects, telles que les propriétés qui spécifient des membres ou des types par noms de chaînes avec ou sans qualification. Dans ce scénario, AmbientAttribute n’est pas destiné à être utilisé directement pour la logique de code du convertisseur de valeur. Au lieu de cela, le convertisseur de valeur doit s’appuyer sur le comportement de traitement de l’enregistreur XAML, qui transmet ses contextes de service à vos méthodes de convertisseur de valeur lorsqu’elles sont appelées IAmbientProvider .

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 être en mesure d’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 un exemple de scénario pour définir AmbientAttribute au niveau du type.

Constructeurs

Nom Description
AmbientAttribute()

Initialise une nouvelle instance de la classe AmbientAttribute.

Propriétés

Nom Description
TypeId

En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute.

(Hérité de Attribute)

Méthodes

Nom Description
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 pour cette instance.

(Hérité de Attribute)
GetType()

Obtient la 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 de la classe dérivée.

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

En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
_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 d’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 méthodes exposées par un objet.

(Hérité de Attribute)

S’applique à

Voir aussi