IQueryAmbient Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Consulta si una propiedad especificada debe tratarse como de ambiente en el ámbito actual.
public interface class IQueryAmbient
public interface IQueryAmbient
type IQueryAmbient = interface
Public Interface IQueryAmbient
- Derivado
Comentarios
El propósito de un mecanismo de propiedades ambiente es mejorar el tiempo de análisis informando a un escritor de objetos XAML para evitar crear instancias de determinados objetos, en casos en los que se sabe que los objetos son para valores que son temporales y no útiles para una aplicación en tiempo de ejecución típica. Normalmente, las búsquedas XAML o el procesamiento XAML de un descriptor de acceso get de propiedad necesitarían crear instancias de estos objetos para rellenar la representación del gráfico de objetos con valores listos para usar.
IQueryAmbient tiene un miembro: IsAmbientPropertyAvailable.
IQueryAmbient es un mecanismo paralelo a AmbientAttribute.
IQueryAmbient es el mecanismo especializado que evita usar la reflexión para determinar la información y también puede actuar de forma situacional (un objeto determinado podría optar por informar true
o false
para IsAmbientPropertyAvailable), mientras que el atributo es esencialmente un análisis estático).
AmbientAttribute es el mecanismo general que pueden usar los escritores de objetos XAML y que normalmente se correlaciona con las propiedades IsAmbient del sistema de tipos XAML dedicadas y IsAmbient.
Implementaciones de WPF de IQueryAmbient
En WPF, IQueryAmbient se usa para el proceso de búsqueda del diccionario de recursos. El proceso de búsqueda obtiene valores sucesivos Resources
en todo el árbol lógico de WPF, trabajando hacia la raíz del ámbito del recurso hasta que se encuentra una clave o la clave está determinada a no existir en el ámbito. Normalmente, si lo hace, sería necesario crear instancias de cada ResourceDictionary vez para recibir los resultados. Declarar el contenido de Resources
como ambiente siempre que Resources
exista optimiza este proceso de búsqueda. En WPF, esta interfaz se implementa en los casos siguientes:
FrameworkElement IQueryAmbient.IsAmbientPropertyAvailable implementa para devolver
true
todos los nombres de propiedad si contiene un existente ResourceDictionary para Resources, y siempre y cuando la consulta no sea para la Resources propia propiedad.Application implementa el mismo patrón para su Resources.
FrameworkContentElement implementa el mismo patrón para su Resources.
FrameworkTemplate implementa el mismo patrón para su Resources. También notifica Template contenido como ambiente, pero devuelve
false
si realiza consultas por Template sí mismo.En cada uno de estos casos, la propiedad pertinente
Resources
(y Template) se atribuyen como AmbientAttribute. El uso típico es consultar las propiedades que no son las AmbientAttribute propiedades con atributos del objeto que define la interfaz. En otras palabras, siempre que exista un diccionario de recursos para proporcionar el valor de tiempo de ejecución potencial cuando se crea el gráfico de objetos, cualquier otra propiedad además del contenedor de propiedades del diccionario de recursos se puede tratar como ambiente.
Métodos
IsAmbientPropertyAvailable(String) |
Consulta si una propiedad con nombre especificada se puede considerar como de ambiente en el ámbito actual. |