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(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public sealed class ContentPropertyAttribute : Attribute
Public NotInheritable Class ContentPropertyAttribute
Inherits Attribute
Herencia
ContentPropertyAttribute
Atributos

Comentarios

Este atributo se usa para identificar que una propiedad específica del tipo con atributos debe considerarse la propiedad de contenido XAML, cuando los analizadores XAML interpretan 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 de elementos primarios y secundarios más naturales 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 como se define en ContentPropertyAttribute y su valor Name . Todos los tipos derivados de Panel heredan la información de la propiedad content, como Grid y Canvas y StackPanel.

Este código se aproxima a cómo Panel aplica ContentPropertyAttribute en C# (la definición verdadera se aplica en código nativo, esto es solo para 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 siguiente XAML:

<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 que se encuentre en el cuerpo de una etiqueta StackPanel debe usarse para establecer el valor de Children en la instancia de StackPanel creada.

Otro ejemplo destacado de ContentPropertyAttribute en acción se puede ver en la clase TextBlock . TextBlock usa Inlines como propiedad de contenido y la clase insertada 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 es 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