IQueryAmbient 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.
Demande si une propriété ambiante spécifiée doit être traitée comme étant ambiante dans la portée actuelle.
public interface class IQueryAmbient
public interface IQueryAmbient
type IQueryAmbient = interface
Public Interface IQueryAmbient
- Dérivé
Remarques
L’objectif d’un mécanisme de propriété ambiante est d’améliorer le temps d’analyse en informant un enregistreur d’objets XAML d’éviter d’instancier certains objets, dans les cas où il est connu que les objets sont destinés à des valeurs temporaires et non utiles pour une application d’exécution classique. Normalement, les recherches XAML ou le traitement XAML d’un accesseur get de propriété doivent instancier ces objets pour remplir la représentation du graphique d’objets avec des valeurs prêtes à l’emploi.
IQueryAmbient a un membre : IsAmbientPropertyAvailable.
IQueryAmbient est un mécanisme parallèle à AmbientAttribute.
IQueryAmbient est le mécanisme spécialisé qui évite d’utiliser la réflexion pour déterminer l’information, et peut également agir en situation (un objet donné peut choisir de signaler true
ou false
pour IsAmbientPropertyAvailable), tandis que l’attribut est essentiellement une analyse statique).
AmbientAttribute est le mécanisme général qui peut être utilisé par les enregistreurs d’objets XAML et qui est généralement corrélé aux propriétés IsAmbient système de type XAML dédiés et IsAmbient.
Implémentations WPF d’IQueryAmbient
Dans WPF, IQueryAmbient est utilisé pour le processus de recherche du dictionnaire de ressources. Le processus de recherche obtient des valeurs successives Resources
dans l’arborescence logique WPF, en travaillant vers la racine de l’étendue de la ressource jusqu’à ce qu’une clé soit trouvée ou que la clé soit déterminée à ne pas exister dans l’étendue. Normalement, cela nécessite d’instancier un ResourceDictionary à chaque fois pour recevoir les résultats. La déclaration du contenu de Resources
comme ambiant tant qu’il Resources
existe optimise ce processus de recherche. Dans WPF, cette interface est implémentée dans les cas suivants :
FrameworkElement IQueryAmbient.IsAmbientPropertyAvailable implémente pour retourner
true
pour tous les noms de propriété s’il contient un existant ResourceDictionary pour Resources, et tant que la requête n’est pas pour la Resources propriété elle-même.Application implémente le même modèle pour son Resources.
FrameworkContentElement implémente le même modèle pour son Resources.
FrameworkTemplate implémente le même modèle pour son Resources. Il signale Template également le contenu comme ambiant, mais retourne
false
en cas de requête pour Template lui-même.Dans chacun de ces cas, la propriété appropriée
Resources
(et Template) est attribuée en tant que AmbientAttribute. L’utilisation classique consiste à rechercher les propriétés qui ne sont pas les AmbientAttribute propriétés attribuées de l’objet qui définit l’interface. En d’autres termes, tant qu’un dictionnaire de ressources existe pour fournir la valeur de temps d’exécution potentielle lors de la création du graphique d’objets, toute autre propriété en dehors du conteneur de propriétés du dictionnaire de ressources peut être traitée comme ambiante.
Méthodes
IsAmbientPropertyAvailable(String) |
Demande si une propriété nommée spécifiée peut être considérée comme ambiante dans la portée actuelle. |