IQueryAmbient IQueryAmbient IQueryAmbient IQueryAmbient Interface

Определение

Запрашивает, должно ли заданное свойство в текущей области обрабатываться как свойство окружения.Queries for whether a specified property should be treated as ambient in the current scope.

public interface class IQueryAmbient
public interface IQueryAmbient
type IQueryAmbient = interface
Public Interface IQueryAmbient
Производный

Комментарии

Цель механизма свойств окружения заключается в том, чтобы улучшить время синтаксического анализа путем формирования средства записи объектов XAML, чтобы избежать создания экземпляров определенных объектов, в случаях, когда известно, что объекты предназначены для значений, которые являются временными и не полезны для обычного времени выполнения. приклад.The purpose of an ambient property mechanism is to improve parsing time by informing a XAML object writer to avoid instantiating certain objects, in cases where it is known that the objects are for values that are temporary and not useful for a typical run time application. Как правило, Поиск XAML или обработка XAML для метода доступа get свойства должны создавать экземпляры таких объектов, чтобы заполнить представление графа объектов готовыми к использованию значениями.Normally, XAML lookups or XAML processing of a property get accessor would need to instantiate such objects to fill the object graph representation with ready-to-use values.

IQueryAmbientимеет один член: IsAmbientPropertyAvailable.IQueryAmbient has one member: IsAmbientPropertyAvailable.

IQueryAmbient— это параллельный механизм AmbientAttribute.IQueryAmbient is a parallel mechanism to AmbientAttribute. IQueryAmbientявляется специализированным механизмом, который позволяет избежать использования отражения для определения информации, а также может задействовать ситуацию (данный объект может выбрать для true отчета false или IsAmbientPropertyAvailableдля), тогда как атрибут является статическим. анализ).IQueryAmbient is the specialized mechanism that avoids using reflection to determine information, and can also act situationally (a given object could choose to report true or false for IsAmbientPropertyAvailable), whereas the attribute is essentially static analysis). AmbientAttribute— Это общий механизм, который может использоваться модулями записи объектов XAML и, как правило, соотносится с выделенными свойствами IsAmbient системы типов XAML и. IsAmbientAmbientAttribute is the general mechanism that can be used by XAML object writers and that typically correlates to the dedicated XAML type system properties IsAmbient and IsAmbient.

Реализации Икуерямбиент в WPFWPF Implementations of IQueryAmbient

В WPF IQueryAmbient для процесса поиска по словарю ресурсов используется.In WPF, IQueryAmbient is used for the resource dictionary lookup process. Процесс уточняющего запроса возвращает последовательные Resources значения по всему логическому дереву WPF, работая в корне области действия ресурса до тех пор, пока не будет найден ключ или не будет определено, что ключ не существует в области.The lookup process gets successive Resources values throughout the WPF logical tree, working towards the root of the resource scope until either a key is found or the key is determined to not exist in scope. Как правило, это потребует создания экземпляра ResourceDictionary каждого раза для получения результатов.Normally, doing so would require instantiating a ResourceDictionary each time to receive the results. Объявление содержимого Resources как окружения Resources до тех пор, пока EXISTS оптимизирует этот процесс поиска.Declaring the contents of Resources as ambient so long as Resources exists optimizes this lookup process. В WPF этот интерфейс реализуется в следующих случаях:In WPF, this interface is implemented in the following cases:

  • FrameworkElementреализует IQueryAmbient.IsAmbientPropertyAvailable метод, true возвращающий для всех имен свойств Resources , если ResourceDictionary он Resourcesсодержит существующее значение для, и, если запрос не предназначен для самого свойства.FrameworkElement implements IQueryAmbient.IsAmbientPropertyAvailable to return true for all property names if it contains an existing ResourceDictionary for Resources, and so long as the query is not for the Resources property itself.

  • Styleреализует тот же шаблон для Resources.Style implements the same pattern for its Resources.

  • Applicationреализует тот же шаблон для Resources.Application implements the same pattern for its Resources.

  • FrameworkContentElementреализует тот же шаблон для Resources.FrameworkContentElement implements the same pattern for its Resources.

  • FrameworkTemplateреализует тот же шаблон для Resources.FrameworkTemplate implements the same pattern for its Resources. Он также сообщает Template содержимое как внешнее, false но возвращает, если Template запрашивает себя.It also reports Template content as ambient but returns false if querying for Template itself.

  • В каждом из этих случаев соответствующее Resources свойство (и Template AmbientAttribute) является атрибутом.In each of these cases, the relevant Resources property (and Template) are attributed as AmbientAttribute. Типичное использование заключается в запросе свойств, которые не AmbientAttribute являются свойствами с атрибутами объекта, определяющего интерфейс.The typical usage is to query for the properties that are NOT the AmbientAttribute attributed properties of the object that defines the interface. Иными словами, если существует словарь ресурсов для обеспечения потенциального значения времени выполнения при создании графа объекта, любое другое свойство, кроме контейнера свойств словаря ресурсов, может рассматриваться как внешнее.In other words, so long as a resource dictionary exists in order to provide the potential run time value when the object graph is created, any other property besides the resource dictionary's property container can be treated as ambient.

Методы

IsAmbientPropertyAvailable(String) IsAmbientPropertyAvailable(String) IsAmbientPropertyAvailable(String) IsAmbientPropertyAvailable(String)

Запрашивает, можно ли считать заданное именованное свойство в текущей области свойством окружения.Queries for whether a specified named property can be considered ambient in the current scope.

Применяется к

Дополнительно