MarkupExtension Klasse

Definition

Diese Klasse stellt eine Basisklasse für Implementierungen von XAML-Markuperweiterungen bereit, die von .NET-XAML-Diensten sowie anderen XAML-Readern und XAML-Writern unterstützt werden können.

public ref class MarkupExtension abstract
public abstract class MarkupExtension
type MarkupExtension = class
Public MustInherit Class MarkupExtension
Vererbung
MarkupExtension
Abgeleitet

Hinweise

Markuperweiterungen geben Objekte an Aufrufer zurück, basierend auf der Eingabe von Zeichenfolgenattributwerten oder Markupelementen in XAML. Markuperweiterungen geben Objekte auf komplexere Weise zurück, als typkonverter allein. Ein XAML-Objektautor ruft einen Typkonverter auf, da ein Typ oder Mitglied eine Typkonverterimplementierung aufweist, die es zugeordnet ist. Aus dem CLR-Referenzrahmen bedeutet dies, dass ein Typ oder Element zugeordnet wird TypeConverterAttribute . Aus der XAML-Typsystemperspektive bedeutet dies, dass ein XAML-Typ oder ein XAML-Element einen Wert für seine TypeConverter Eigenschaft hat. Der Aufruf eines Typkonverters ist an die Typ- oder Eigenschaftsdefinition gebunden und wird immer durch XAML-Verarbeitung für diese Fälle aufgerufen. Im Gegensatz dazu ist eine Markuperweiterung mehr unter der Kontrolle von Benutzercode und vom Benutzer erstellten Markups und kann angewendet werden, wenn ein Anwendungsszenario es erfordert. Eine Markuperweiterung kann aufgerufen werden und kann zum Festlegen verschiedener Typ-Memberwerte verwendet werden, solange der Rückgabetyp der Markuperweiterung diesem Wert zuzuweisen ist.

Informationen zum Erstellen einer benutzerdefinierten Markuperweiterung finden Sie unter ProvideValue. Weitere Informationen zu Markuperweiterungen im Allgemeinen finden Sie unter Markuperweiterungen für XAML-Übersicht. Wenn Sie auf WPF erstellen und Markuperweiterungen für XAML erstellen oder erstellen, finden Sie weitere relevante Informationen im Thema Markuperweiterungen und WPF-XAML.

Die ProvideValue Methode jeder Markuperweiterungsimplementierung kann zur Laufzeit einen IServiceProvider Kontext bereitstellen. Dies IServiceProvider wird dann für bestimmte Dienste abgefragt, die Informationen übergeben, z IProvideValueTarget . B. oder IXamlTypeResolver. Weitere Informationen zu Dienstkontexten für eine Markuperweiterung finden Sie unter Dienstkontexte, die für Typkonverter und Markuperweiterungen verfügbar sind.

Abgeleitete Klassen sollten den Verbrauchern über den spezifischen Rückgabetyp, der aus der Implementierung der Markuperweiterung ProvideValue verfügbar ist, informiert MarkupExtensionReturnTypeAttribute werden.

Konstruktoren

MarkupExtension()

Initialisiert eine neue Instanz einer von der MarkupExtension abgeleiteten Klasse.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ProvideValue(IServiceProvider)

Gibt bei Implementierung in einer abgeleiteten Klasse ein Objekt zurück, das als Wert der Zieleigenschaft für diese Markuperweiterung bereitgestellt wird.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Siehe auch