MarkupExtension Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce una classe di base per le implementazioni di estensioni di markup XAML che possono essere supportate dai servizi XAML .NET e da altri lettori XAML 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 dei valori di attributo stringa o degli elementi di markup in XAML. Le estensioni di markup restituiscono oggetti in modo più sofisticato rispetto ai convertitori di tipi da soli. Un writer di oggetti XAML richiama un convertitore di tipi perché a un tipo o a un membro è associata un'implementazione del convertitore di tipi. Dal frame CLR di riferimento, questo significa che viene TypeConverterAttribute attribuito 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 uno scenario dell'applicazione lo richiede. Un'estensione di markup può essere richiamata e può essere usata per impostare valori diversi del membro del tipo, 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, vedi Cenni preliminari sulle estensioni di markup per XAML. Se si usa 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 oggetto IServiceProvider in fase di esecuzione in grado di 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 ed estensioni di markup.
Le classi derivate devono essere attribuite con MarkupExtensionReturnTypeAttribute per informare i consumer del tipo restituito più specifico disponibile dall'implementazione dell'estensione di ProvideValue markup.
Costruttori
| Nome | Descrizione |
|---|---|
| MarkupExtension() |
Inizializza una nuova istanza di una classe derivata da MarkupExtension. |
Metodi
| Nome | Descrizione |
|---|---|
| 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 il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ProvideValue(IServiceProvider) |
Se implementato 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) |