Поделиться через


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. Дополнительные сведения о свойствах содержимого XAML см. в разделе "Свойства содержимого XAML" руководства по синтаксису XAML.

Примером класса в словаре по умолчанию среда выполнения Windows XAML, к которому применен атрибут ContentPropertyAttribute, является Panel. Свойство Children на панели определяется как свойство содержимого XAML в соответствии с определением ContentPropertyAttribute и его значением Name . Сведения о свойствах содержимого наследуются всеми производными типами Panel, такими как Grid и Canvas и StackPanel.

Этот код приблизительно определяет, как Panel применяет ContentPropertyAttribute в 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, является более сложным и при необходимости может поддерживать несколько явных встроенных элементов.

Конструкторы

ContentPropertyAttribute()

Инициализирует новый экземпляр класса ContentPropertyAttribute .

Поля

Name

Указывает, какое свойство типа является свойством содержимого XAML. Обработчик XAML использует эти сведения при обработке дочерних элементов XAML представлений XAML типа с атрибутом.

Применяется к

См. также раздел