AmbientAttribute Clase
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í.
Especifica que una propiedad o un tipo debe tratarse como ambiente. El concepto de ambiente se relaciona con la forma en que los procesadores XAML determinan los propietarios de tipos de los miembros.
public ref class AmbientAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
- Herencia
- Atributos
Comentarios
Una propiedad ambiente es una propiedad en la que se espera que el valor esté disponible en el contexto del analizador al crear un gráfico de objetos, pero donde se suspende la búsqueda típica de miembros de tipo para fines del conjunto de nodos XAML inmediato que se está creando. Hay dos escenarios principales para el concepto de ambiente:
Alguna otra propiedad del mismo objeto influye y califica cómo debe funcionar esa búsqueda de propiedad de objeto.
La propiedad representa un mecanismo de aplazamiento mayor y las funcionalidades ambientales para buscar un valor miembro se extienden a todos los objetos contenidos en el objeto actual.
Este atributo se puede aplicar a propiedades específicas que tienen contenedores esperados que habilitan un comportamiento de búsqueda de propiedades ambientales o se pueden aplicar a una clase para habilitar el comportamiento de la propiedad ambiente en todos los casos de ese tipo de valor para una propiedad.
AmbientAttribute también se puede aplicar a un método CLR, para admitir la atribución de una propiedad adjunta a XAML como ambiente. Esto es posiblemente necesario porque, en una implementación de CLR, se implementa o representa una propiedad adjunta XAML en la reflexión como un patrón de descriptor de acceso con get
los métodos y set
. No existe ninguna propiedad CLR real para el atributo, por lo que restringir el uso de para AttributeTargetsProperty
no habría habilitado la especificación de un miembro adjuntable como ambiente. Para un miembro adjuntable que quiera notificar como ambiente, atribule el descriptor de get
acceso. No debe intentar atribuir métodos que no admitan específicamente métodos de miembros adjuntables.
En versiones anteriores de .NET Framework, esta clase existía en el ensamblado específico de WPF WindowsBase. En .NET Framework 4, AmbientAttribute está en el ensamblado System.Xaml. Para obtener más información, consulta Types Migrated from WPF to System.Xaml.
Los tipos de ambiente (tipos en AmbientAttribute los que se aplica en el nivel de tipo) se pueden usar para determinadas situaciones de procesamiento XAML en las que el tipo de una propiedad debe resolverse desordenados.
Escenarios de escritor de objetos
Si estás definiendo un escritor de objetos XAML y encuentras una propiedad, un método o un tipo donde AmbientAttribute se aplica, normalmente debes tener acceso a un servicio para determinar el comportamiento de búsqueda de propiedades ambientales previsto que se necesita para escribir objetos. Para obtener más información, vea IAmbientProvider.
Convertidores de valores
Es posible que los convertidores de tipos o las extensiones de marcado necesiten conocer la información ambiental para procesar propiedades que representan asignaciones de tipos indirectos, como propiedades que especifican miembros o tipos por nombres de cadena con o sin cualificación. En este escenario, AmbientAttribute no está pensado para usarse directamente para la lógica de código del convertidor de valores. En su lugar, el convertidor de valores debe basarse en el comportamiento de procesamiento del escritor XAML, que pasará IAmbientProvider sus contextos de servicio a los métodos del convertidor de valores cuando se llame a .
Escenarios de WPF para AmbientAttribute
Una propiedad de (StyleTargetType) puede calificar las búsquedas de nombres de propiedad necesarias que son necesarias para buscar las referencias de respaldo para los nombres de propiedad en Setter.Property los valores.
Todo el contenido de una
Resources
propiedad (elementos de un ResourceDictionary), así como el contenido de la plantilla, debe poder tener acceso a otros elementos del mismo nivel como valores. Declarar todaResources
la propiedad como ambiente invoca lógica que lo habilita en el analizador XAML de WPF.
Vea ResourceDictionary un ejemplo de un escenario para establecer AmbientAttribute en el nivel de tipo.
Constructores
AmbientAttribute() |
Inicializa una nueva instancia de la clase AmbientAttribute. |
Propiedades
TypeId |
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
Métodos
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. (Heredado de Attribute) |
GetHashCode() |
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IsDefaultAttribute() |
Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
Match(Object) |
Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Heredado de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Heredado de Attribute) |