IAmbientProvider Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente un service qui peut retourner des informations sur les propriétés ambiantes ou les types ambiants aux convertisseurs de type et aux extensions de balisage.
public interface class IAmbientProvider
public interface IAmbientProvider
type IAmbientProvider = interface
Public Interface IAmbientProvider
Remarques
Cette interface représente le service qui peut aider les convertisseurs de types et les extensions de balisage à obtenir les identificateurs de propriété ambiante pour le système de type XAML (XamlMember objets). Le service peut également obtenir les valeurs de propriété ambiante à partir de classes. Les types peuvent également être ambiants; tout membre qui utilise ce type comme valeur doit être considéré comme ambiant.
Ce service est généralement retourné via un appel à GetService, qui est effectué auprès d’un fournisseur de services spécifique au contexte. Le fournisseur de services est généralement disponible pour les contextes qui en ont besoin, comme le code d’exécution d’un convertisseur de valeurs. Pour plus d’informations, consultez Convertisseurs de types et extensions de balisage pour XAML et contextes de service disponibles pour les convertisseurs de types et les extensions de balisage.
À propos des propriétés ambiantes
Une propriété ambiante est une propriété dont la valeur de propriété doit être disponible pour les utilisations du convertisseur de type et de l’extension de balisage qui existent dans la structure de nœud XAML et dans le graphique d’objets créé à partir de celle-ci. Cela s’applique à un processeur XAML pendant la phase d’écriture d’objet du chemin de chargement ou la phase de sérialisation d’un chemin d’enregistrement.
Dans le cas du chemin de chargement, la valeur de la propriété ambiante peut influencer la valeur dans le graphique d’objets d’autres propriétés qui existent en dessous dans une structure de nœud XAML. Lorsqu’il est traité comme un flux de nœud XAML, le concept ambiant signifie que la valeur de la propriété ambiante doit être disponible pour les convertisseurs de type et les extensions de balisage de StartObject
à EndObject
. De même, un convertisseur de type utilisé pour le chemin d’enregistrement peut utiliser la connaissance de la propriété ambiante et de sa valeur. Par conséquent, le CODE XAML généré est une meilleure représentation aller-retour.
Pour les membres en général, XAML ne spécifie pas l’ordre dans lequel les membres d’un objet doivent être traités. Toutefois, toute valeur de propriété ambiante doit d’abord être traitée par le lecteur XAML afin que les utilisations du convertisseur de type et de l’extension de balisage contenues dans d’autres propriétés puissent y accéder via le IAmbientProvider service.
DependsOn est un concept similaire qui influence également l’ordre de traitement des nœuds XAML. Toutefois, DependsOn ne peut être utilisé que pour les relations de membre d’homologue et de nœud ; il ne peut pas influencer tous les descendants. En outre, DependsOn influence directement le paramètre de propriété de graphe d’objet ; alors que la technique ambiante s’appuie sur des convertisseurs de type ou des extensions de balisage. Dans la technique ambiante, il doit également y avoir un convertisseur de type ou une définition d’extension de balisage spécifique qui spécifie la façon dont la valeur de la propriété ambiante doit être interprétée et appliquée à l’objet.
Remarques sur l'utilisation de WPF
Un scénario de propriété ambiante illustré dans l’ensemble de fonctionnalités WPF est Style.TargetType, qui peut qualifier les recherches de noms de propriété nécessaires pour d’autres valeurs. Dans ce cas, la Style.TargetType valeur qualifie les Setter.Property valeurs qui se trouvent dans les nœuds XAML en dessous. Setter.Property utilise le comportement du convertisseur de type pour un DependencyProperty. Ce comportement accède à la valeur ambiante Style.TargetType en interrogeant GetFirstAmbientValue à partir d’un contexte de service disponible pour les convertisseurs de types et les extensions de balisage.
Un scénario de type ambiant illustré dans l’ensemble de fonctionnalités WPF est ResourceDictionary.
ResourceDictionary a une MergedDictionaries propriété qui peut contenir d’autres ResourceDictionary objets à fusionner, et l’ordre de résolution des ressources prévu pour le scénario fusionné est en conflit avec l’ordre de chargement des types.
ResourceDictionary s’applique AmbientAttribute afin qu’un processeur XAML puisse traiter correctement les références dans un dictionnaire fusionné avec StaticResource
des utilisations. Plus précisément, StaticResource
est une extension de balisage, qui appelle GetAllAmbientValues.
Méthodes
GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[]) |
Retourne un jeu énumérable d'éléments d'informations de propriété ambiante pour le jeu de types et de propriétés demandé. |
GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[]) |
Retourne un jeu énumérable d'éléments d'informations de propriété ambiante pour le jeu de propriétés demandé. |
GetAllAmbientValues(XamlType[]) |
Retourne un jeu énumérable d'instances d'objet des types ambiants possibles pour les types demandés. |
GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[]) |
Retourne un élément d'information de propriété ambiante unique à partir du jeu de propriétés demandé, en fonction de la première propriété rencontrée. |
GetFirstAmbientValue(XamlType[]) |
Retourne le premier objet correspondant qui est un type ambiant possible pour les types demandés. |