MarkupExtension Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет базовый класс для реализаций расширения разметки XAML, которые могут поддерживаться службами XAML .NET и другими средствами чтения XAML и средствами записи XAML.
public ref class MarkupExtension abstract
public abstract class MarkupExtension
type MarkupExtension = class
Public MustInherit Class MarkupExtension
- Наследование
-
MarkupExtension
- Производный
Комментарии
Расширения разметки возвращают объекты вызывающим объектам на основе входных значений атрибутов строки или элементов разметки в XAML. Расширения разметки возвращают объекты более сложным способом, чем только преобразователи типов. Модуль записи объектов XAML вызывает преобразователь типов, так как с ним связана реализация преобразователя типов или члена. В кадре ссылок среды CLR это означает, что тип или член атрибута.TypeConverterAttribute С точки зрения системы типов XAML это означает, что тип XAML или член XAML имеет значение для его TypeConverter свойства. Вызов преобразователя типов привязан к определению типа или свойства и всегда вызывается обработкой XAML для этих случаев. В отличие от этого, расширение разметки находится под контролем пользовательского кода и создаваемой пользователем разметки и может применяться всякий раз, когда сценарий приложения требует его. Расширение разметки можно вызвать и использовать для задания различных значений элементов типа, если возвращаемый тип расширения разметки присваивается такому значению.
Дополнительные сведения о создании пользовательского расширения разметки см. в статье ProvideValue. Дополнительные сведения о расширениях разметки, как правило, см. в разделе "Расширения разметки" для обзора XAML. Если вы используете WPF и используете или создаете расширения разметки для XAML, другие соответствующие сведения можно найти в разделе Расширения разметки и XAML WPF.
Метод ProvideValue каждой реализации расширения разметки может использовать IServiceProvider во время выполнения, который может предоставить контекст. Затем он IServiceProvider запрашивается для определенных служб, которые передают информацию, например IProvideValueTarget или IXamlTypeResolver. Дополнительные сведения о контекстах служб для расширения разметки см. в разделе "Контексты служб", доступные для преобразователей типов и расширений разметки.
Производные классы должны быть связаны с MarkupExtensionReturnTypeAttribute информированием потребителей о наиболее конкретном типе возвращаемого значения, доступном в реализации расширения ProvideValue разметки.
Конструкторы
| Имя | Описание |
|---|---|
| MarkupExtension() |
Инициализирует новый экземпляр класса, производный от MarkupExtension. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ProvideValue(IServiceProvider) |
При реализации в производном классе возвращает объект, предоставленный в качестве значения целевого свойства для этого расширения разметки. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |