MarkupExtension Clase

Definición

Proporciona una clase base para las implementaciones de extensión de marcado XAML que pueden ser compatibles con los servicios XAML de .NET y otros lectores XAML y escritores XAML.

public ref class MarkupExtension abstract
public abstract class MarkupExtension
type MarkupExtension = class
Public MustInherit Class MarkupExtension
Herencia
MarkupExtension
Derivado

Comentarios

Las extensiones de marcado devuelven objetos a los llamadores, en función de la entrada de valores de atributo de cadena o elementos de marcado en XAML. Las extensiones de marcado devuelven objetos de forma más sofisticada que los convertidores de tipos por sí solos. Un escritor de objetos XAML invoca un convertidor de tipos porque un tipo o miembro tiene una implementación del convertidor de tipos asociada. Desde el marco CLR de referencia, esto significa que se TypeConverterAttribute atribuye un tipo o miembro. Desde la perspectiva del sistema de tipos XAML, esto significa que un tipo XAML o un miembro XAML tiene un valor para su TypeConverter propiedad. La invocación de un convertidor de tipos está vinculada a la definición de tipo o propiedad, y siempre se invoca mediante el procesamiento XAML para estos casos. Por el contrario, una extensión de marcado está más bajo el control del código de usuario y el marcado generado por el usuario, y se puede aplicar siempre que un escenario de aplicación lo exija. Se puede invocar una extensión de marcado y se puede usar para establecer diferentes valores de miembro de tipo, siempre que el tipo de valor devuelto de la extensión de marcado se pueda asignar a ese valor.

Para obtener información sobre cómo crear una extensión de marcado personalizada, vea ProvideValue. Para obtener más información sobre las extensiones de marcado en general, consulta Markup Extensions for XAML Overview. Si estás compilando en WPF y usando o creando extensiones de marcado para XAML, puedes encontrar otra información relevante en el tema Extensiones de marcado y XAML de WPF.

El ProvideValue método de cada implementación de extensión de marcado puede usar en IServiceProvider tiempo de ejecución que puede proporcionar contexto. A IServiceProvider continuación, se consulta para servicios específicos que pasan información, como IProvideValueTarget o IXamlTypeResolver. Para obtener más información sobre los contextos de servicio para una extensión de marcado, consulte Contextos de servicio disponibles para convertidores de tipos y extensiones de marcado.

Las clases derivadas deben atribuirse con MarkupExtensionReturnTypeAttribute para informar a los consumidores del tipo de valor devuelto más específico disponible en la implementación de la extensión de ProvideValue marcado.

Constructores

MarkupExtension()

Inicializa una nueva instancia de una clase derivada de MarkupExtension.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ProvideValue(IServiceProvider)

Cuando se implementa en una clase derivada, devuelve un objeto que se proporciona como el valor de la propiedad de destino para esta extensión de marcado.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también