MarkupExtension Klasa

Definicja

Udostępnia klasę bazową dla implementacji rozszerzenia znaczników XAML, które mogą być obsługiwane przez usługi .NET XAML i innych czytników XAML i autorów XAML.Provides a base class for XAML markup extension implementations that can be supported by .NET XAML Services and other XAML readers and XAML writers.

public ref class MarkupExtension abstract
public abstract class MarkupExtension
type MarkupExtension = class
Public MustInherit Class MarkupExtension
Dziedziczenie
MarkupExtension
Pochodne

Uwagi

Rozszerzenia znaczników zwracają obiekty do obiektów wywołujących na podstawie danych wejściowych wartości atrybutów ciągu lub elementów znaczników w języku XAML.Markup extensions return objects to callers, based on the input of string attribute values or markup elements in XAML. Rozszerzenia znaczników zwracają obiekty w bardziej zaawansowany sposób, niż można wykonać wyłącznie konwertery typów.Markup extensions return objects in a more sophisticated way than type converters alone can accomplish. Moduł zapisujący obiektów XAML wywołuje konwerter typów, ponieważ typ lub element członkowski ma skojarzoną z nim implementację konwertera typów.A XAML object writer invokes a type converter because a type or member has a type converter implementation associated with it. W ramce CLR odwołania oznacza to, że typ lub element członkowski jest przypisany do TypeConverterAttribute atrybutu.From the CLR frame of reference, this means that a type or member is TypeConverterAttribute attributed. W perspektywie systemu typu XAML oznacza to, że typ XAML lub element członkowski XAML ma wartość TypeConverter właściwości.From the XAML type system perspective, this means that a XAML type or a XAML member has a value for its TypeConverter property. Wywołanie konwertera typów jest powiązane z definicją typu lub właściwości i jest zawsze wywoływane przez przetwarzanie XAML w takich przypadkach.The invocation of a type converter is tied to the type or property definition, and is always invoked by XAML processing for these cases. Z kolei rozszerzenie znaczników jest bardziej pod kontrolą kodu użytkownika i znaczników generowanych przez użytkownika i może być stosowane za każdym razem, gdy scenariusz aplikacji wymaga tego.In contrast, a markup extension is more under the control of user code and user-produced markup, and can be applied whenever an application scenario demands it. Rozszerzenie znacznika może być wywoływane i może służyć do ustawiania różnych wartości elementów członkowskich typu, tak długo, jak typ zwracany rozszerzenia znaczników można przypisać do tej wartości.A markup extension can be invoked and can be used for setting different type-member values, so long as the markup extension's return type is assignable to that value.

Aby uzyskać informacje na temat tworzenia niestandardowego rozszerzenia znaczników, zobacz ProvideValue .For information on creating a custom markup extension, see ProvideValue. Aby uzyskać więcej informacji na temat ogólnych rozszerzeń znaczników, zobacz znaczniki rozszerzeń dla języka XAML — Omówienie.For more information on markup extensions in general, see Markup Extensions for XAML Overview. Jeśli tworzysz na platformie WPF i używasz lub tworzysz rozszerzenia znaczników dla języka XAML, inne istotne informacje można znaleźć w tematach rozszerzeń znaczników i języka XAML WPF.If you are building on WPF and using or creating markup extensions for XAML, other relevant information can be found in the topic Markup Extensions and WPF XAML.

ProvideValueMetoda każdej implementacji rozszerzenia znacznika może używać IServiceProvider w czasie wykonywania, który może zapewnić kontekst.The ProvideValue method of each markup extension implementation can use an IServiceProvider at run time that can provide context. IServiceProviderNastępnie zapytanie dotyczy określonych usług, które przekazują informacje, takie jak IProvideValueTarget lub IXamlTypeResolver .This IServiceProvider is then queried for specific services that pass information, such as IProvideValueTarget or IXamlTypeResolver. Aby uzyskać więcej informacji na temat kontekstów usługi dla rozszerzenia znacznika, zobacz konteksty usługi dostępne dla typów konwerterów i rozszerzeń znaczników.For more information on service contexts for a markup extension, see Service Contexts Available to Type Converters and Markup Extensions.

Klasy pochodne powinny być przypisane MarkupExtensionReturnTypeAttribute do użytkowników w celu informowania odbiorców o najbardziej specyficznym zwracanym typie dostępnym z implementacji rozszerzenia znaczników ProvideValue .Derived classes should be attributed with MarkupExtensionReturnTypeAttribute to inform consumers of the most specific return type available from the markup extension's ProvideValue implementation.

Konstruktory

MarkupExtension()

Inicjuje nowe wystąpienie klasy pochodzącej od MarkupExtension .Initializes a new instance of a class derived from MarkupExtension.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ProvideValue(IServiceProvider)

Po zaimplementowaniu w klasie pochodnej zwraca obiekt, który jest podany jako wartość właściwości target dla tego rozszerzenia znacznika.When implemented in a derived class, returns an object that is provided as the value of the target property for this markup extension.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Dotyczy