MarkupExtension Clase

Definición

Proporciona una clase base para las implementaciones de extensión de marcado XAML que pueden admitir los servicios XAML de .NET Framework, y otros lectores y sistemas de escritura XAML.Provides a base class for XAML markup extension implementations that can be supported by .NET Framework XAML Services and other XAML readers and XAML writers.

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.Markup extensions return objects to callers, based on the input of string attribute values or markup elements in XAML. Las extensiones de marcado devuelven objetos de una forma más sofisticada que los convertidores de tipos por sí solos.Markup extensions return objects in a more sophisticated way than type converters alone can accomplish. Un escritor de objetos XAML invoca un convertidor de tipos porque un tipo o un miembro tiene una implementación de convertidor de tipos asociada.A XAML object writer invokes a type converter because a type or member has a type converter implementation associated with it. En el marco de referencia de CLR, esto significa que un tipo o miembro TypeConverterAttribute tiene un atributo.From the CLR frame of reference, this means that a type or member is TypeConverterAttribute attributed. Desde la perspectiva del sistema de tipos XAML, esto significa que un tipo XAML o un miembro XAML tienen un valor TypeConverter para su propiedad.From the XAML type system perspective, this means that a XAML type or a XAML member has a value for its TypeConverter property. La invocación de un convertidor de tipos está ligada a la definición de tipo o propiedad y siempre se invoca mediante el procesamiento XAML en estos casos.The invocation of a type converter is tied to the type or property definition, and is always invoked by XAML processing for these cases. Por el contrario, una extensión de marcado es 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 requiera.In contrast, a markup extension is more under the control of user code and user-produced markup, and can be applied whenever an application scenario demands it. 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 sea asignable a ese valor.A markup extension can be invoked and can be used for setting different type-member values, so long as the markup extension's return type is assignable to that value.

Para obtener información sobre cómo crear una extensión de marcado ProvideValuepersonalizada, vea.For information on creating a custom markup extension, see ProvideValue. Para obtener más información sobre las extensiones de marcado en general, vea información general sobre las extensiones de marcado para XAML.For more information on markup extensions in general, see Markup Extensions for XAML Overview. Si va a compilar en WPF y usa o crea extensiones de marcado para XAML, puede encontrar otra información relevante en el tema extensiones de marcado y XAML de WPF.If you are building on WPF and using or creating markup extensions for XAML, other relevant information can be found in the topic Markup Extensions and WPF XAML.

El ProvideValue método de cada implementación de extensión de marcado puede IServiceProvider utilizar en tiempo de ejecución que puede proporcionar el contexto.The ProvideValue method of each markup extension implementation can use an IServiceProvider at run time that can provide context. A continuación, IProvideValueTarget IXamlTypeResolverse consultan los servicios específicos que pasan información, como o. IServiceProviderThis IServiceProvider is then queried for specific services that pass information, such as IProvideValueTarget or IXamlTypeResolver. Para obtener más información sobre los contextos de servicio para una extensión de marcado, vea contextos de servicio disponibles para convertidores de tipos y extensiones de marcado.For more information on service contexts for a markup extension, see Service Contexts Available to Type Converters and Markup Extensions.

Se debe atribuir a las MarkupExtensionReturnTypeAttribute clases derivadas con para informar a los consumidores del tipo de valor devuelto ProvideValue más específico disponible en la implementación de la extensión de marcado.Derived classes should be attributed with MarkupExtensionReturnTypeAttribute to inform consumers of the most specific return type available from the markup extension's ProvideValue implementation.

Constructores

MarkupExtension()

Inicializa una nueva instancia de una clase derivada de MarkupExtension.Initializes a new instance of a class derived from MarkupExtension.

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(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.When implemented in a derived class, returns an object that is provided as the value of the target property for this markup extension.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a

Consulte también: