Condividi tramite


MarkupExtension Classe

Definizione

Fornisce una classe di base per le implementazioni delle estensioni di markup XAML che possono essere supportate dai servizi XAML di .NET e da altri reader e writer XAML.

public ref class MarkupExtension abstract
public abstract class MarkupExtension
type MarkupExtension = class
Public MustInherit Class MarkupExtension
Ereditarietà
MarkupExtension
Derivato

Commenti

Le estensioni di markup restituiscono oggetti ai chiamanti, in base all'input di valori di attributo stringa o agli elementi di markup in XAML. Le estensioni di markup restituiscono oggetti in modo più sofisticato rispetto ai convertitori di tipi da soli possono eseguire. Un writer di oggetti XAML richiama un convertitore di tipi perché un tipo o un membro ha un'implementazione del convertitore di tipi associata. Dal frame CLR di riferimento, questo significa che viene TypeConverterAttribute assegnato un tipo o un membro. Dal punto di vista del sistema dei tipi XAML, questo significa che un tipo XAML o un membro XAML ha un valore per la relativa TypeConverter proprietà. La chiamata di un convertitore di tipi è associata alla definizione del tipo o della proprietà e viene sempre richiamata dall'elaborazione XAML per questi casi. Al contrario, un'estensione di markup è più sotto il controllo del codice utente e del markup prodotto dall'utente e può essere applicata ogni volta che lo scenario dell'applicazione richiede. Un'estensione di markup può essere richiamata e può essere usata per impostare valori membri di tipo diversi, purché il tipo restituito dell'estensione di markup sia assegnabile a tale valore.

Per informazioni sulla creazione di un'estensione di markup personalizzata, vedere ProvideValue. Per altre informazioni sulle estensioni di markup in generale, vedere Panoramica delle estensioni di markup per XAML. Se si sta creando WPF e si usano o si creano estensioni di markup per XAML, altre informazioni pertinenti sono disponibili nell'argomento Estensioni di markup e XAML WPF.

Il ProvideValue metodo di ogni implementazione dell'estensione di markup può usare un IServiceProvider oggetto in fase di esecuzione che può fornire contesto. Viene IServiceProvider quindi eseguita una query per servizi specifici che passano informazioni, ad esempio IProvideValueTarget o IXamlTypeResolver. Per altre informazioni sui contesti di servizio per un'estensione di markup, vedere Contesti di servizio disponibili per convertitori di tipi e estensioni di markup.

Le classi derivate devono essere attributi con MarkupExtensionReturnTypeAttribute per informare i consumer del tipo restituito più specifico disponibile dall'implementazione dell'estensione di ProvideValue markup.

Costruttori

MarkupExtension()

Inizializza una nuova istanza della classe derivata da MarkupExtension.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ProvideValue(IServiceProvider)

In caso di implementazione in una classe derivata, restituisce un oggetto fornito come valore della proprietà di destinazione per questa estensione di markup.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche