IQueryAmbient Interface

Definitie

Query's voor het feit of een opgegeven eigenschap moet worden behandeld als omgeving in het huidige bereik.

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

Opmerkingen

Het doel van een mechanisme voor omgevingseigenschappen is het verbeteren van de parseringstijd door een XAML-objectschrijver te informeren om te voorkomen dat bepaalde objecten instantiëren, in gevallen waarin bekend is dat de objecten voor waarden zijn die tijdelijk en niet nuttig zijn voor een typische uitvoeringstijdtoepassing. Normaal gesproken moeten XAML-zoekopdrachten of XAML-verwerking van een eigenschap accessor dergelijke objecten instantiëren om de weergave van de objectgrafiek te vullen met kant-en-klare waarden.

IQueryAmbient heeft één lid: IsAmbientPropertyAvailable.

IQueryAmbient is een parallel mechanisme voor AmbientAttribute. IQueryAmbient is het gespecialiseerde mechanisme dat het gebruik van weerspiegeling voor het bepalen van informatie vermijdt en ook situatie kan optreden (een bepaald object kan ervoor kiezen om te rapporteren true of false voor IsAmbientPropertyAvailable), terwijl het kenmerk in wezen statische analyse is). AmbientAttribute is het algemene mechanisme dat kan worden gebruikt door XAML-objectschrijvers en die meestal correleert met de toegewezen XAML-type systeemeigenschappen IsAmbient en IsAmbient.

WPF implementaties van IQueryAmbient

In WPF wordt IQueryAmbient gebruikt voor het zoekproces van de resourcewoordenlijst. Het opzoekproces krijgt opeenvolgende Resources waarden in de WPF logische structuur, waarbij wordt gewerkt aan de hoofdmap van het resourcebereik totdat een sleutel is gevonden of dat de sleutel niet binnen het bereik bestaat. Normaal gesproken moet er telkens een ResourceDictionary instantie worden gestart om de resultaten te ontvangen. Het declareren van de inhoud van Resources zolang er Resources al bestaat, optimaliseert dit opzoekproces. In WPF wordt deze interface geïmplementeerd in de volgende gevallen:

  • FrameworkElementimplementeert om terug te keren voor alle eigenschapsnamen IQueryAmbient.IsAmbientPropertyAvailable als deze een bestaande true voor ResourceDictionarybevat, en zolang de query niet voor de Resources eigenschap zelf is.Resources

  • Style implementeert hetzelfde patroon voor de Resourcesbijbehorende .

  • Application implementeert hetzelfde patroon voor de Resourcesbijbehorende .

  • FrameworkContentElement implementeert hetzelfde patroon voor de Resourcesbijbehorende .

  • FrameworkTemplate implementeert hetzelfde patroon voor de Resourcesbijbehorende . Het rapporteert Template ook inhoud als omgeving, maar retourneert false als er query's op Template zichzelf worden uitgevoerd.

  • In elk van deze gevallen wordt de relevante Resources eigenschap (en Template) toegeschreven als AmbientAttribute. Het gebruikelijke gebruik is om query's uit te voeren op de eigenschappen die niet de AmbientAttribute toegewezen eigenschappen zijn van het object dat de interface definieert. Met andere woorden, zolang er een resourcewoordenlijst bestaat om de mogelijke uitvoeringstijdwaarde op te geven wanneer de objectgrafiek wordt gemaakt, kan elke andere eigenschap naast de eigenschapscontainer van de resourcewoordenlijst als omgeving worden behandeld.

Methoden

Name Description
IsAmbientPropertyAvailable(String)

Query's voor het feit of een opgegeven benoemde eigenschap als omgeving in het huidige bereik kan worden beschouwd.

Van toepassing op

Zie ook