ContentPropertyAttribute Clase

Definición

Indica qué propiedad de un tipo es la propiedad de contenido XAML. Un procesador XAML usa esta información al procesar elementos secundarios XAML de representaciones XAML del tipo con atributos.

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
Herencia
ContentPropertyAttribute
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Comentarios

C++/WinRT. Consulte el atributo [contentproperty].

Este atributo se usa para identificar que una propiedad específica del tipo con atributos debe considerarse la propiedad de contenido XAML, cuando la interpretan los analizadores XAML y otro código de marco XAML. El propósito de una propiedad de contenido XAML es que proporciona una sintaxis XAML abreviada que puede omitir el marcado de elementos de propiedad para esa propiedad. La eliminación de elementos de propiedad facilita un formulario primario-secundario más natural en el marcado XAML. Para obtener más información sobre las propiedades de contenido XAML, consulta la sección "Propiedades de contenido XAML" de la guía de sintaxis XAML.

Un ejemplo de una clase en el vocabulario XAML predeterminado Windows Runtime que tiene aplicado ContentPropertyAttribute es Panel. La propiedad Children del Panel se identifica como la propiedad de contenido XAML tal y como se define en ContentPropertyAttribute y su valor Name . La información de la propiedad content se hereda por todos los tipos derivados de Panel, como Grid y Canvas y StackPanel.

Este código se aproxima a la forma en que Panel aplica ContentPropertyAttribute en C# (la definición verdadera se aplica en código nativo, esto es solo para la ilustración):

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

Con Panel y su clase derivada StackPanel como ilustración del concepto de propiedad de contenido XAML, es posible que tengas el código XAML siguiente:

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

Lo anterior es equivalente a este XAML más legible:

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

Cuando se analiza mediante un analizador XAML, el analizador conoce a través de ContentPropertyAttribute aplicado en el Panel que cualquier contenido encontrado en el cuerpo de una etiqueta StackPanel debe usarse para establecer el valor de Children en la instancia de StackPanel creada.

Se puede ver otro ejemplo destacado de ContentPropertyAttribute en acción en la clase TextBlock . TextBlock usa Inlines como propiedad de contenido y la clase en línea predeterminada Run usa Text como propiedad de contenido. En combinación, las propiedades de contenido permiten una sintaxis insertada simple, como <TextBlock>Hello</TextBlock>, aunque el gráfico de objetos creado por este XAML sea más complejo y también sea capaz de admitir varios elementos insertados explícitos si lo desea.

Constructores

ContentPropertyAttribute()

Inicializa una nueva instancia de la clase ContentPropertyAttribute .

Campos

Name

Indica qué propiedad de un tipo es la propiedad de contenido XAML. Un procesador XAML usa esta información al procesar elementos secundarios XAML de representaciones XAML del tipo con atributos.

Se aplica a

Consulte también