MarkupExtension Classe

Definição

Fornece uma classe base para implementações de extensões de marcação XAML que podem ser suportadas por serviços .NET XAML e outros leitores e escritores XAML.

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

Observações

As extensões de marcação retornam objetos aos chamadores, com base na introdução de valores de atributos de string ou elementos de marcação em XAML. As extensões de marcação devolvem objetos de uma forma mais sofisticada do que os conversores de tipos sozinhos conseguem fazer. Um escritor de objetos XAML invoca um conversor de tipos porque um tipo ou membro tem uma implementação de conversor de tipos associada. A partir do referencial CLR, isto significa que um tipo ou membro é TypeConverterAttribute atribuído. Do ponto de vista do sistema de tipos XAML, isto significa que um tipo XAML ou um membro XAML tem um valor para a sua TypeConverter propriedade. A invocação de um conversor de tipos está ligada à definição de tipo ou propriedade, e é sempre invocada pelo processamento XAML nestes casos. Em contraste, uma extensão de marcação está mais sob controlo do código do utilizador e da marcação produzida pelo utilizador, podendo ser aplicada sempre que um cenário de aplicação o exigir. Uma extensão de marcação pode ser invocada e pode ser usada para definir diferentes valores de membros de tipo, desde que o tipo de retorno da extensão de marcação seja atribuível a esse valor.

Para informações sobre como criar uma extensão de marcação personalizada, veja ProvideValue. Para mais informações sobre extensões de marcação em geral, consulte Extensões de Marcação para Visão Geral XAML. Se estiver a desenvolver WPF e a usar ou criar extensões de marcação para XAML, outras informações relevantes podem ser encontradas no tópico e WPF XAML.

O ProvideValue método de cada implementação de extensão de marcação pode usar um IServiceProvider tempo de execução que pode fornecer contexto. Esta IServiceProvider é então consultada para serviços específicos que transmitem informação, como IProvideValueTarget ou IXamlTypeResolver. Para 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 Tipos e Extensões de Marcação.

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

Construtores

Name Description
MarkupExtension()

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

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ProvideValue(IServiceProvider)

Quando implementado numa classe derivada, devolve um objeto que é fornecido como valor da propriedade alvo para esta extensão de marcação.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Ver também