MarkupExtension Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет базовый класс для реализаций расширений разметки XAML, которые могут поддерживаться службами XAML платформы .NET и другими средствами чтения и записи 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) |