MarkupExtension 类

定义

为可以由 .NET XAML 服务及其他 XAML 读取器和 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 的标记扩展,可以在 主题标记扩展和 WPF XAML 中找到其他相关信息。

ProvideValue每个标记扩展实现的 方法都可以在运行时使用IServiceProvider可提供上下文的 。 IServiceProvider然后,会查询传递信息的特定服务,例如 IProvideValueTargetIXamlTypeResolver。 有关标记扩展的服务上下文的详细信息,请参阅 可用于类型转换器的服务上下文和标记扩展

派生类应使用 MarkupExtensionReturnTypeAttribute 进行特性化,以通知使用者标记扩展实现 ProvideValue 中可用的最具体的返回类型。

构造函数

MarkupExtension()

初始化从 MarkupExtension 派生的类的新实例。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ProvideValue(IServiceProvider)

当在派生类中实现时,返回用作此标记扩展的目标属性值的对象。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅