IQueryAmbient Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapytania dotyczące tego, czy określona właściwość powinna być traktowana jako otoczenia w bieżącym zakresie.
public interface class IQueryAmbient
public interface IQueryAmbient
type IQueryAmbient = interface
Public Interface IQueryAmbient
- Pochodne
Uwagi
Celem mechanizmu właściwości otoczenia jest poprawienie czasu analizowania przez informowanie składnika zapisywania obiektów XAML w celu uniknięcia tworzenia wystąpień niektórych obiektów, w przypadkach, gdy wiadomo, że obiekty są dla wartości tymczasowych i nie są przydatne w typowej aplikacji czasu wykonywania. Zwykle wyszukiwanie XAML lub przetwarzanie XAML właściwości get accessor musi utworzyć wystąpienie takich obiektów, aby wypełnić reprezentację grafu obiektu wartościami gotowymi do użycia.
IQueryAmbient ma jednego członka: IsAmbientPropertyAvailable.
IQueryAmbient jest mechanizmem równoległym do AmbientAttribute.
IQueryAmbient to wyspecjalizowany mechanizm, który unika używania odbicia w celu określenia informacji, a także może działać w sytuacjach (dany obiekt może wybrać raport true
lub false
dla IsAmbientPropertyAvailable), podczas gdy atrybut jest zasadniczo statyczną analizą).
AmbientAttribute jest ogólnym mechanizmem, który może być używany przez moduły zapisywania obiektów XAML i który zazwyczaj koreluje z dedykowanymi właściwościami IsAmbient systemu typu XAML i IsAmbient.
Implementacje WPF interfejsu IQueryAmbient
W systemie WPF IQueryAmbient jest używany do procesu wyszukiwania słownika zasobów. Proces wyszukiwania pobiera kolejne Resources
wartości w drzewie logicznym WPF, pracując w kierunku katalogu głównego zakresu zasobów, dopóki klucz nie zostanie znaleziony lub klucz nie istnieje w zakresie. Zwykle wymagałoby to utworzenia wystąpienia za ResourceDictionary każdym razem, aby otrzymywać wyniki. Deklarowanie zawartości Resources
otoczenia tak długo, jak Resources
istnieje, optymalizuje ten proces wyszukiwania. W systemie WPF ten interfejs jest implementowany w następujących przypadkach:
FrameworkElement program implementuje IQueryAmbient.IsAmbientPropertyAvailable zwracanie
true
dla wszystkich nazw właściwości, jeśli zawiera on istniejący ResourceDictionary dla Resourceselementu , i tak długo, jak zapytanie nie Resources dotyczy samej właściwości.Application implementuje ten sam wzorzec dla elementu Resources.
FrameworkContentElement implementuje ten sam wzorzec dla elementu Resources.
FrameworkTemplate implementuje ten sam wzorzec dla elementu Resources. Raportuje Template również zawartość jako otoczenia, ale zwraca
false
wartość w przypadku wykonywania zapytań względem Template siebie.W każdym z tych przypadków odpowiednia
Resources
właściwość (i Template) są przypisywane jako AmbientAttribute. Typowym użyciem jest wykonywanie zapytań dotyczących właściwości, które nie AmbientAttribute są właściwościami przypisanymi obiektu definiującego interfejs. Innymi słowy, tak długo, jak istnieje słownik zasobów w celu zapewnienia potencjalnej wartości czasu wykonywania podczas tworzenia grafu obiektu, każda inna właściwość oprócz kontenera właściwości słownika zasobów może być traktowana jako otoczenia.
Metody
IsAmbientPropertyAvailable(String) |
Zapytania dotyczące tego, czy określona nazwana właściwość może być uznawana za otoczenia w bieżącym zakresie. |