MarkupExtension MarkupExtension MarkupExtension MarkupExtension Class

Определение

Предоставляет базовый класс для реализаций расширений разметки XAML, который может поддерживаться службами XAML платформы .NET Framework и другими средствами чтения и записи XAML.Provides a base class for XAML markup extension implementations that can be supported by .NET Framework 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
Наследование
MarkupExtensionMarkupExtensionMarkupExtensionMarkupExtension
Производный

Комментарии

Расширения разметки возвращают объекты вызывающим объектам на основе входных значений строковых атрибутов или элементов разметки в XAML.Markup extensions return objects to callers, based on the input of string attribute values or markup elements in XAML. Расширения разметки возвращают объекты более сложным способом, чем могут быть выполнены только преобразователи типов.Markup extensions return objects in a more sophisticated way than type converters alone can accomplish. Средство записи объектов XAML вызывает преобразователь типов, так как с типом или членом связана реализация преобразователя типов.A XAML object writer invokes a type converter because a type or member has a type converter implementation associated with it. Из фрейма ссылки CLR это означает, что тип или член является TypeConverterAttribute атрибутом.From the CLR frame of reference, this means that a type or member is TypeConverterAttribute attributed. С точки зрения системы типов XAML это означает, что тип XAML или член XAML имеет значение для его TypeConverter свойства.From the XAML type system perspective, this means that a XAML type or a XAML member has a value for its TypeConverter property. Вызов преобразователя типов связан с определением типа или свойства и всегда вызывается обработкой XAML для этих случаев.The invocation of a type converter is tied to the type or property definition, and is always invoked by XAML processing for these cases. Расширение разметки, напротив, — это больше, чем управление кодом пользователя и разметкой, созданной пользователем, и может применяться каждый раз, когда сценарий приложения требует его.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. Расширение разметки может быть вызвано и может использоваться для установки различных значений членов типа, если тип возвращаемого значения расширения разметки назначается этому значению.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.

Сведения о создании пользовательского расширения разметки см. в ProvideValueразделе.For information on creating a custom markup extension, see ProvideValue. Дополнительные сведения о расширениях разметки см. в разделе Общие сведения о расширениях разметки для XAML.For more information on markup extensions in general, see Markup Extensions for XAML Overview. Если вы создаете на платформе WPF и используете или создаете расширения разметки для XAML, другие важные сведения можно найти в разделе расширения разметки и 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.

Метод каждой реализации расширения разметки может IServiceProvider использовать во время выполнения, который может предоставить контекст. ProvideValueThe ProvideValue method of each markup extension implementation can use an IServiceProvider at run time that can provide context. Затем выполняется запрос для конкретных служб, которые передают сведения, IProvideValueTarget например или IXamlTypeResolver. IServiceProviderThis IServiceProvider is then queried for specific services that pass information, such as IProvideValueTarget or IXamlTypeResolver. Дополнительные сведения о контекстах службы для расширения разметки см. в разделе контексты служб, доступные для преобразователей типов и расширений разметки.For more information on service contexts for a markup extension, see Service Contexts Available to Type Converters and Markup Extensions.

Производные классы должны иметь атрибут MarkupExtensionReturnTypeAttribute , чтобы информировать потребителей о наиболее конкретном возвращаемом типе, доступном из 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.

Конструкторы

MarkupExtension() MarkupExtension() MarkupExtension() MarkupExtension()

Инициализирует новый экземпляр класса, производного от класса MarkupExtension.Initializes a new instance of a class derived from MarkupExtension.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ProvideValue(IServiceProvider) ProvideValue(IServiceProvider) ProvideValue(IServiceProvider) ProvideValue(IServiceProvider)

При реализации в производном классе возвращает объект, предоставляемый как значение целевого свойства для данного расширения разметки.When implemented in a derived class, returns an object that is provided as the value of the target property for this markup extension.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к

Дополнительно