Compartilhar via


MarkupExtension Classe

Definição

Fornece uma classe base para as implementações de extensão de marcação XAML que podem ter o suporte dos serviços XAML do .NET e de outros leitores e gravadores de XAML.

public ref class MarkupExtension abstract
public abstract class MarkupExtension
type MarkupExtension = class
Public MustInherit Class MarkupExtension
Herança
MarkupExtension
Derivado

Comentários

As extensões de marcação retornam objetos aos chamadores, com base na entrada de valores de atributo de cadeia de caracteres ou elementos de marcação no XAML. As extensões de marcação retornam objetos de uma maneira mais sofisticada do que os conversores de tipo sozinhos podem realizar. Um gravador de objeto XAML invoca um conversor de tipo porque um tipo ou membro tem uma implementação de conversor de tipo associada a ele. No quadro clr de referência, isso significa que um tipo ou membro é TypeConverterAttribute atribuído. Da perspectiva do sistema de tipo XAML, isso significa que um tipo XAML ou um membro XAML tem um valor para sua TypeConverter propriedade. A invocação de um conversor de tipo está vinculada à definição de tipo ou propriedade e é sempre invocada pelo processamento XAML para esses casos. Por outro lado, uma extensão de marcação está mais sob o controle do código do usuário e da marcação produzida pelo usuário e pode ser aplicada sempre que um cenário de aplicativo exigir. Uma extensão de marcação pode ser invocada e pode ser usada para definir diferentes valores de membro de tipo, desde que o tipo de retorno da extensão de marcação seja atribuível a esse valor.

Para obter informações sobre como criar uma extensão de marcação personalizada, consulte ProvideValue. Para obter mais informações sobre extensões de marcação em geral, consulte Visão geral das Extensões de Marcação para XAML. Se você estiver criando no WPF e usando ou criando extensões de marcação para XAML, outras informações relevantes poderão ser encontradas no tópico Extensões de Marcação e XAML do WPF.

O ProvideValue método de cada implementação de extensão de marcação pode usar um em tempo de execução IServiceProvider que pode fornecer contexto. Em IServiceProvider seguida, isso é consultado para serviços específicos que passam informações, como IProvideValueTarget ou IXamlTypeResolver. Para obter mais informações sobre contextos de serviço para uma extensão de marcação, consulte Contextos de serviço disponíveis para conversores de tipo e extensões de marcação.

Classes derivadas devem ser atribuídas com MarkupExtensionReturnTypeAttribute para informar os consumidores sobre o tipo de retorno mais específico disponível na implementação da extensão de ProvideValue marcação.

Construtores

MarkupExtension()

Inicializa uma nova instância de uma classe derivada de MarkupExtension.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ProvideValue(IServiceProvider)

Quando implementada em uma classe derivada, retorna um objeto que é fornecido como o valor da propriedade de destino para esta extensão de marcação.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também