Udostępnij za pośrednictwem


IQueryAmbient Interfejs

Definicja

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.

  • Style implementuje ten sam wzorzec dla elementu Resources.

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

Dotyczy

Zobacz też