IQueryAmbient Schnittstelle

Definition

Fragt ab, ob eine angegebene Eigenschaft im aktuellen Bereich als Ambient-Eigenschaft behandelt werden soll.

public interface class IQueryAmbient
public interface IQueryAmbient
type IQueryAmbient = interface
Public Interface IQueryAmbient
Abgeleitet

Hinweise

Der Zweck eines Umgebungseigenschaftsmechanismus besteht darin, die Analysezeit zu verbessern, indem er einen XAML-Objektautor informiert, um bestimmte Objekte zu vermeiden, in Fällen, in denen bekannt ist, dass die Objekte für Werte gelten, die temporäre und nicht für eine typische Laufzeitanwendung nützlich sind. Normalerweise müssen XAML-Nachschlagevorgänge oder XAML-Verarbeitung eines Eigenschaftszugriffs solche Objekte instanziieren, um die Objektdiagrammdarstellung mit fähigen Werten zu füllen.

IQueryAmbient hat ein Mitglied: IsAmbientPropertyAvailable.

IQueryAmbient ist ein paralleler Mechanismus zu AmbientAttribute. IQueryAmbient ist der spezialisierte Mechanismus, der die Verwendung von Spiegelungen zur Ermittlung von Informationen verhindert und auch situational handeln kann (ein bestimmtes Objekt könnte true berichten oder false für IsAmbientPropertyAvailable), während das Attribut im Wesentlichen statische Analyse ist. AmbientAttribute ist der allgemeine Mechanismus, der von XAML-Objektautoren verwendet werden kann und in der Regel mit den dedizierten XAML-Typsystemeigenschaften IsAmbient IsAmbientund .

WPF-Implementierungen von IQueryAmbient

In WPF IQueryAmbient wird für den Nachschlagevorgang des Ressourcenwörterbuchs verwendet. Der Nachschlagevorgang ruft in der WPF-logischen Struktur die nachfolgenden Resources Werte ab, die auf den Stamm des Ressourcenbereichs ausgerichtet sind, bis entweder ein Schlüssel gefunden wird oder der Schlüssel bestimmt wird, dass es nicht im Bereich vorhanden ist. Normalerweise würde es erforderlich sein, die ResourceDictionary Ergebnisse jedes Mal instanziieren zu können. Das Deklarieren des Inhalts von Resources als Umgebung, solange vorhanden ist, Resources optimiert diesen Nachschlagevorgang. In WPF wird diese Schnittstelle in den folgenden Fällen implementiert:

  • FrameworkElementimplementiertIQueryAmbient.IsAmbientPropertyAvailable, um für alle Eigenschaftennamen zurückzugebentrue, wenn es eine vorhandene ResourcesResourceDictionary Eigenschaft enthält, und solange die Abfrage nicht für die Resources Eigenschaft selbst ist.

  • Style implementiert das gleiche Muster für seine Resources.

  • Application implementiert das gleiche Muster für seine Resources.

  • FrameworkContentElement implementiert das gleiche Muster für seine Resources.

  • FrameworkTemplate implementiert das gleiche Muster für seine Resources. Außerdem werden Template Inhalte als Umgebung gemeldet, aber false wenn Sie sich selbst Template abfragen.

  • In jedem dieser Fälle werden die relevanten Resources Eigenschaften (und Template) als zugeordnet AmbientAttribute. Die typische Verwendung besteht darin, die Eigenschaften abzufragen, die NICHT die AmbientAttribute zugeordneten Eigenschaften des Objekts sind, das die Schnittstelle definiert. In anderen Worten, solange ein Ressourcenwörterbuch vorhanden ist, um den potenziellen Laufzeitwert bereitzustellen, wenn das Objektdiagramm erstellt wird, kann jede andere Eigenschaft neben dem Eigenschaftencontainer des Ressourcenwörterbuchs als Umgebung behandelt werden.

Methoden

IsAmbientPropertyAvailable(String)

Fragt ab, ob eine angegebene benannte Eigenschaft im aktuellen Bereich als Ambient betrachtet werden kann.

Gilt für:

Siehe auch