IQueryAmbient Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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ückzugeben
true, wenn es eine vorhandene ResourcesResourceDictionary Eigenschaft enthält, und solange die Abfrage nicht für die Resources Eigenschaft selbst ist.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
falsewenn Sie sich selbst Template abfragen.In jedem dieser Fälle werden die relevanten
ResourcesEigenschaften (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. |