MarkupExtension Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Basisklasse für XAML-Markuperweiterungsimplementierungen bereit, die von .NET XAML Services und anderen XAML-Lesern und XAML-Autoren 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 anspruchsvollere Weise zurück, als Nur Typkonverter erreichen können. Ein XAML-Objektschreiber ruft einen Typkonverter auf, da einem Typ oder Element eine Typkonverterimplementierung zugeordnet ist. Aus dem CLR-Bezugsrahmen bedeutet dies, dass ein Typ oder Element zugeordnet wird TypeConverterAttribute . Aus Sicht des XAML-Typsystems bedeutet dies, dass ein XAML-Typ oder ein XAML-Element einen Wert für seine TypeConverter Eigenschaft aufweist. 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 befindet sich eine Markuperweiterung mehr unter der Kontrolle von Benutzercode und vom Benutzer erzeugtem Markup und kann bei Bedarf eines Anwendungsszenarios angewendet werden. Eine Markuperweiterung kann aufgerufen werden und kann zum Festlegen unterschiedlicher Typmememmwerte 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 Kontext bereitstellen. Dies IServiceProvider wird dann nach bestimmten Diensten abgefragt, die Informationen übergeben, z IProvideValueTarget . B. oder IXamlTypeResolver. Weitere Informationen zu Dienstkontexten für eine Markuperweiterung finden Sie unter "Service Contexts Available to Type Converters and Markup Extensions".
Abgeleitete Klassen sollten den Verbrauchern über den spezifischen Rückgabetyp informiert MarkupExtensionReturnTypeAttribute werden, der von der Implementierung der Markuperweiterung ProvideValue verfügbar ist.
Konstruktoren
| Name | Beschreibung |
|---|---|
| MarkupExtension() |
Initialisiert eine neue Instanz einer klasse, die von MarkupExtension. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ProvideValue(IServiceProvider) |
Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein Objekt zurückgegeben, 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) |