IQueryAmbient Interface

Définition

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.

  • Style implémente le même modèle pour son Resources.

  • 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.

S’applique à

Voir aussi