Freigeben über


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 dies von Typkonvertern allein möglich ist. Ein XAML-Objektschreiber ruft einen Typkonverter auf, da einem Typ oder Member eine Typkonverterimplementierung zugeordnet ist. Aus dem CLR-Referenzrahmen bedeutet dies, dass ein Typ oder Member zugeordnet wird TypeConverterAttribute . Aus sicht des XAML-Typsystems bedeutet dies, dass ein XAML-Typ oder ein XAML-Member über einen Wert für seine TypeConverter Eigenschaft verfügt. Der Aufruf eines Typkonverters ist an die Typ- oder Eigenschaftsdefinition gebunden und wird immer von der XAML-Verarbeitung für diese Fälle aufgerufen. Im Gegensatz dazu steht eine Markuperweiterung eher unter der Kontrolle von Benutzercode und benutzerseitig erzeugtem Markup und kann immer dann angewendet werden, wenn es ein Anwendungsszenario erfordert. Eine Markuperweiterung kann aufgerufen und zum Festlegen verschiedener Typmemberwerte verwendet werden, solange der Rückgabetyp der Markuperweiterung diesem Wert zugewiesen werden kann.

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 aufbauen und Markuperweiterungen für XAML verwenden oder erstellen, finden Sie weitere relevante Informationen im Thema Markuperweiterungen und WPF XAML.

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

Abgeleitete Klassen sollten zugeordnet MarkupExtensionReturnTypeAttribute werden, um Consumer über den spezifischsten Rückgabetyp zu informieren, der aus der Implementierung der Markuperweiterung ProvideValue verfügbar ist.

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:

Weitere Informationen