MarkupExtension 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为可以由 .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然后,会查询传递信息的特定服务,例如 IProvideValueTarget 或 IXamlTypeResolver。 有关标记扩展的服务上下文的详细信息,请参阅 可用于类型转换器的服务上下文和标记扩展。
派生类应使用 MarkupExtensionReturnTypeAttribute 进行特性化,以通知使用者标记扩展实现 ProvideValue 中可用的最具体的返回类型。
构造函数
MarkupExtension() |
初始化从 MarkupExtension 派生的类的新实例。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ProvideValue(IServiceProvider) |
当在派生类中实现时,返回用作此标记扩展的目标属性值的对象。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |