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 типа с атрибутом. |