ContentPropertyAttribute 類別

定義

指出類型的哪一個屬性是 XAML 內容屬性。 XAML 處理器會在處理屬性化類型之 XAML 表示的 XAML 子項目時,使用這項資訊。

public ref class ContentPropertyAttribute sealed : Attribute
/// [Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
class ContentPropertyAttribute final : Attribute
/// [Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.AttributeName("contentproperty")]
class ContentPropertyAttribute final : Attribute
[Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public sealed class ContentPropertyAttribute : Attribute
[Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.AttributeName("contentproperty")]
public sealed class ContentPropertyAttribute : Attribute
Public NotInheritable Class ContentPropertyAttribute
Inherits Attribute
繼承
ContentPropertyAttribute
屬性

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

備註

C++/WinRT。 請參閱 [contentproperty] 屬性

當 XAML 剖析器和其他 XAML 架構程式碼解譯時,這個屬性可用來識別屬性類型的特定屬性應該視為 XAML 內容屬性。 XAML 內容屬性的目的是要提供 XAML 語法速記,以省略該屬性的屬性專案標記。 移除屬性元素有助於在 XAML 標記中形成更自然的父子系形式。 For more info on XAML content properties, see "XAML content properties" section of XAML syntax guide.

已套用 ContentPropertyAttribute 之預設Windows 執行階段 XAML 詞彙中的類別範例為PanelPanel上的Children屬性會識別為由 ContentPropertyAttribute 及其Name值所定義的 XAML 內容屬性。 Content 屬性資訊是由所有衍生類型的 Panel繼承,例如 Grid 和CanvasStackPanel

此程式碼大約是 Panel 在 C# 中套用 ContentPropertyAttribute 的方式, (在原生程式碼中套用 true 定義,這僅供說明) :

[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 剖析器剖析時,剖析器會透過在 Panel上套用的 ContentPropertyAttribute 得知,在 StackPanel標籤主體內找到的任何內容都應該用來設定所建立StackPanel實例上的 Children值。

您可以在 TextBlock類別上看到 ContentPropertyAttribute 的另一個醒目範例。 TextBlock 使用 Inlines 做為其內容屬性,而預設的內嵌類別 Run 會使用 Text 做為其內容屬性。 結合內容屬性可啟用簡單的內嵌語法,例如 <TextBlock>Hello</TextBlock> ,即使這個 XAML 所建立的物件圖形較為複雜,也能夠視需要支援多個明確的內嵌元素。

建構函式

ContentPropertyAttribute()

初始化 ContentPropertyAttribute 類別的新實例。

欄位

Name

指出類型的哪一個屬性是 XAML 內容屬性。 XAML 處理器會在處理屬性化類型之 XAML 表示的 XAML 子項目時,使用這項資訊。

適用於

另請參閱