ContentPropertyAttribute 类

定义

指示某种类型的哪个属性是 XAML 内容属性。 处理特性化类型的 XAML 表示形式的 XAML 子元素时,XAML 处理器会使用此信息。

public ref class ContentPropertyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=true)]
public sealed class ContentPropertyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=true)>]
type ContentPropertyAttribute = class
    inherit Attribute
Public NotInheritable Class ContentPropertyAttribute
Inherits Attribute
继承
ContentPropertyAttribute
属性

示例

以下示例创建一个名为 Film 的类,该类应用了 ContentPropertyAttribute 。 名为 Title 的属性指示为内容属性。

[ContentProperty("Title")]
public class Film
{
    public Film()
    {
    }

    public string Title
    {
        get { return _title; }
        set { _title = value; }
    }

    private string _title;
}
<ContentProperty("Title")>
Public Class Film
    Public Sub New()
    End Sub

    Public Property Title() As String
        Get
            Return _title
        End Get
        Set(ByVal value As String)
            _title = value
        End Set
    End Property

    Private _title As String
End Class

注解

如果 的 ContentPropertyAttribute 关联属性的类型不是 stringobject,则 XAML 处理器会尝试标识值转换技术。 第一个检查用于本机类型转换,可以是 XAML 语言基元或由该特定 XAML 编写器实现启用的特定本机转换。 下一步是查找类型转换器。 在 .NET 实现中,根据应用的成员级别或类型级别定义标识 TypeConverterAttribute 类型转换器。 如果无法识别值转换,XAML 对象编写器通常会引发异常。

为了接受多个对象元素作为内容,XAML 内容属性的类型必须作为集合类型支持。

Inherited=true由于 属性的声明,的值ContentPropertyAttribute通常也会对所有派生类应用内容属性指定。 应用空 ContentPropertyAttribute 使派生类能够删除基类 (的内容属性属性声明,并注意该类) 没有内容属性。 应用不同名称 ContentPropertyAttribute 的 会将继承 ContentPropertyAttribute 的 替换为新名称。

在早期版本的 .NET Framework中,此类存在于特定于 WPF 的程序集 WindowsBase 中,并且 Windows Communication Foundation (WCF) 中也具有并行实现。 从 .NET Framework 4.0 开始, ContentPropertyAttribute 位于 System.Xaml 程序集中。 有关详细信息,请参阅 Types Migrated from WPF to System.Xaml

WPF 用法说明

Windows Presentation Foundation (WPF) 中使用 ContentPropertyAttribute 的类的示例是 ContentControl,该类从中Button继承。 属性 ContentControl.Content 是由 设置 ContentPropertyAttribute的内容属性。 Button如果在 XAML 中实例化, ContentButton 将设置为开始和结束按钮标记之间的 元素。

构造函数

ContentPropertyAttribute()

初始化 ContentPropertyAttribute 类的新实例。

ContentPropertyAttribute(String)

使用指定的名称初始化 ContentPropertyAttribute 类的新实例。

属性

Name

获取作为内容属性的属性的名称。

TypeId

在派生类中实现时,获取此 Attribute 的唯一标识符。

(继承自 Attribute)

方法

Equals(Object)

返回一个值,该值指示此实例是否与指定的对象相等。

(继承自 Attribute)
GetHashCode()

返回此实例的哈希代码。

(继承自 Attribute)
GetType()

获取当前实例的 Type

(继承自 Object)
IsDefaultAttribute()

在派生类中重写时,指示此实例的值是否是派生类的默认值。

(继承自 Attribute)
Match(Object)

当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。

(继承自 Attribute)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

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

(继承自 Object)

显式接口实现

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

将一组名称映射为对应的一组调度标识符。

(继承自 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

检索对象的类型信息,然后可以使用该信息获取接口的类型信息。

(继承自 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

检索对象提供的类型信息接口的数量(0 或 1)。

(继承自 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供对某一对象公开的属性和方法的访问。

(继承自 Attribute)

适用于

另请参阅