ContentPropertyAttribute 特性

ContentPropertyAttribute Attribute

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

继承

Object
  Attribute
    ContentPropertyAttribute

语法


public ref class ContentPropertyAttribute sealed : Attribute

特性

[AttributeUsage(512)]
[Version(0x6020000)]

成员

ContentPropertyAttribute特性 具有这些类型的成员:

构造函数

ContentPropertyAttribute特性 具有这些构造函数。

构造函数说明
ContentPropertyAttribute Initializes a new instance of the ContentPropertyAttribute class.

 

字段

ContentPropertyAttribute特性 具有这些字段。

字段数据类型说明
Name

System.String [.NET] | Platform::String [C++]

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

 

方法

The ContentPropertyAttribute 特性 继承这些方法于:Object 类.

备注

此特性用于标识当特性类型的特定属性由 XAML 分析器和其他 XAML 框架代码解释时,应将特定属性当做 XAML 内容属性。XAML 内容属性的目的在于它提供了可省略该属性的属性元素标记的 XAML 语法简略形式。删除属性元素能使 XAML 标记中的父子格式更加自然。有关 XAML 内容属性的更多信息,请参见基本 XAML 语法指南的“XAML 内容属性”部分。

应用了 ContentPropertyAttribute 的默认 Windows 运行时 XAML 词汇表中的类示例为 PanelPanel 上的属性 Children 被标识为 XAML 内容属性,由 ContentPropertyAttribute 及其 Name 值定义。内容属性信息由 Panel 的所有派生类型(如 GridCanvasStackPanel)继承。

此代码近似 PanelContentPropertyAttribute 应用到 C# 中的方法(真实的定义应用在本机代码中,此代码仅做图示):


[ContentProperty(Name = "Children")]
    public class Panel : FrameworkElement
    { ...}

使用 Panel 及其派生类 StackPanel 作为 XAML 内容属性概念的插图时,您可能具有以下 XAML:


<StackPanel>
  <StackPanel.Children>
    <TextBlock>Testing content attribute</TextBlock>
  </StackPanel.Children>
</StackPanel>

以上内容与此更具可读性的 XAML 是等效的:


<StackPanel>
  <TextBlock>Testing content attribute</TextBlock>
</StackPanel>

当由 XAML 分析器进行分析时,该分析器通过 ContentPropertyAttribute(在 Panel 上应用)了解到,在 StackPanel 标记的正文中找到的任何内容均应用于设置 Children 的值(在创建的 StackPanel 实例上)。

运行中的 ContentPropertyAttribute 的其他显著示例可以在 TextBlock 类上看到。TextBlock 使用 Inlines 作为其内容属性,默认内联类 Run 使用 Text 作为其内容属性。内容属性组合在一起,启用简单的内联语法,例如 <TextBlock>Hello</TextBlock>,即使此 XAML 创建的对象图更为复杂,并且还能在需要时支持多个显式内联元素。

要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

命名空间

Windows.UI.Xaml.Markup
Windows::UI::Xaml::Markup [C++]

元数据

Windows.winmd

另请参见

Attribute
基本 XAML 语法准则
XAML 概述

 

 

显示:
© 2016 Microsoft