Compartir a través de


IAmbientProvider Interfaz

Definición

Representa un servicio que puede devolver elementos de información sobre propiedades de ambiente o tipos de ambiente a los convertidores de tipos y las extensiones de marcado.

public interface class IAmbientProvider
public interface IAmbientProvider
type IAmbientProvider = interface
Public Interface IAmbientProvider

Comentarios

Esta interfaz representa el servicio que puede ayudar a los convertidores de tipos y extensiones de marcado a obtener los identificadores de propiedad ambiente para el sistema de tipos XAML (XamlMember objetos). El servicio también puede obtener los valores de propiedad ambiente de las clases. Los tipos también pueden ser ambiente; cualquier miembro que use ese tipo como valor debe considerarse ambiente.

Este servicio se devuelve normalmente a través de una llamada a GetService, que se realiza en un proveedor de servicios específico del contexto. El proveedor de servicios está disponible con carácter general para contextos que lo necesitan, como el código de ejecución de un convertidor de valores. Para obtener más información, consulta Convertidores de tipos y extensiones de marcado para xaml y contextos de servicio disponibles para convertidores de tipos y extensiones de marcado.

Acerca de las propiedades ambientales

Una propiedad ambiente es una propiedad cuyo valor de propiedad debe estar disponible para el convertidor de tipos y los usos de extensiones de marcado que existen en la estructura del nodo XAML y en el gráfico de objetos creado a partir de él. Esto es relevante para un procesador XAML durante la fase de escritura de objetos de la ruta de acceso de carga o la fase de serialización de una ruta de acceso de guardado.

En el caso de la ruta de acceso de carga, el valor de la propiedad ambiente puede influir en el valor del gráfico de objetos de otras propiedades que existen debajo de él en una estructura de nodo XAML. Cuando se procesa como un flujo de nodo XAML, el concepto ambiente significa que el valor de la propiedad ambiente debe estar disponible para convertidores de tipos y extensiones de marcado de StartObject a EndObject. Del mismo modo, un convertidor de tipos que se usa para la ruta de acceso de guardado puede usar el conocimiento de la propiedad ambiente y su valor. Por lo tanto, el XAML que se genera es una mejor representación de ida y vuelta.

Para los miembros en general, XAML no especifica el orden en el que se deben procesar los miembros de un objeto. Sin embargo, el lector XAML debe procesar primero cualquier valor de propiedad ambiente para que el convertidor de tipos y los usos de extensiones de marcado contenidos en otras propiedades puedan acceder a él a través del IAmbientProvider servicio.

DependsOn es un concepto similar que también influye en el orden de procesamiento de nodos XAML. Sin embargo, DependsOn solo se puede usar para las relaciones de miembro del mismo nivel y nodo; no puede influir en todos los descendientes. Además, DependsOn influye directamente en la configuración de la propiedad del grafo de objetos; mientras que la técnica ambiental se basa en convertidores de tipos o extensiones de marcado. En la técnica ambiental, también debe haber un convertidor de tipos específico o una definición de extensión de marcado que especifique cómo se debe interpretar y aplicar el valor de la propiedad ambiente al objeto.

Notas de uso de WPF

Un escenario de propiedad ambiente que se muestra en el conjunto de características de WPF es Style.TargetType, que puede calificar las búsquedas de nombres de propiedad necesarias para otros valores. En este caso, el Style.TargetType valor califica los Setter.Property valores que se encuentran en los nodos XAML debajo de él. Setter.Propertyusa el comportamiento del convertidor de tipos para .DependencyProperty Este comportamiento accede al valor ambiente Style.TargetType consultando GetFirstAmbientValue desde un contexto de servicio que está disponible para convertidores de tipos y extensiones de marcado.

Un escenario de tipo ambiente que se muestra en el conjunto de características de WPF es ResourceDictionary. ResourceDictionary tiene una MergedDictionaries propiedad que puede contener otros ResourceDictionary objetos que se van a combinar y el orden previsto de resolución de recursos para el escenario combinado entra en conflicto con el orden en que se cargan los tipos. ResourceDictionary se aplica AmbientAttribute para que un procesador XAML pueda procesar correctamente las referencias en un diccionario combinado con StaticResource usos. En concreto, StaticResource es una extensión de marcado, que llama a GetAllAmbientValues.

Métodos

GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[])

Devuelve un conjunto enumerable de elementos de información sobre propiedades de ambiente del conjunto de tipos y propiedades solicitado.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

Devuelve un conjunto enumerable de elementos de información sobre propiedades de ambiente del conjunto de propiedades solicitado.

GetAllAmbientValues(XamlType[])

Devuelve un conjunto enumerable de instancias de objeto de posibles tipos de ambiente de los tipos solicitados.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

Devuelve un único elemento de información sobre propiedades de ambiente del conjunto de propiedades solicitado, en función de la propiedad que se encuentre primero.

GetFirstAmbientValue(XamlType[])

Devuelve la primera coincidencia de un objeto que es un posible tipo de ambiente de los tipos solicitados.

Se aplica a

Consulte también