Partilhar via


ContentPropertyAttribute Classe

Definição

Indica qual propriedade de um tipo é a propriedade de conteúdo XAML. Um processador XAML usa essas informações durante o processamento de elementos filho XAML de representações XAML do tipo atribuído.

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
Herança
ContentPropertyAttribute
Atributos

Comentários

Esse atributo é usado para identificar que uma propriedade específica do tipo atribuído deve ser considerada a propriedade de conteúdo XAML, quando interpretada por analisadores XAML e outro código de estrutura XAML. A finalidade de uma propriedade de conteúdo XAML é que ela fornece uma abreviação de sintaxe XAML que pode omitir a marcação de elemento de propriedade para essa propriedade. A remoção de elementos de propriedade facilita um formulário pai-filho mais natural na marcação XAML. Para obter mais informações sobre propriedades de conteúdo XAML, consulte a seção "Propriedades de conteúdo XAML" do guia de sintaxe XAML.

Um exemplo de uma classe no vocabulário XAML Windows Runtime padrão que tem ContentPropertyAttribute aplicado é Panel. A propriedade Children no Painel é identificada como a propriedade de conteúdo XAML, conforme definido pelo ContentPropertyAttribute e seu valor Name . As informações da propriedade de conteúdo são herdadas por todos os tipos derivados de Panel, como Grid e Canvas e StackPanel.

Esse código aproxima como o Panel aplica ContentPropertyAttribute em C# (a definição verdadeira é aplicada no código nativo, isso é apenas para ilustração):

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

Usando Panel e sua classe derivada StackPanel como ilustração do conceito de propriedade de conteúdo XAML, você pode ter o seguinte XAML:

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

O acima é equivalente a este XAML mais legível:

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

Quando analisado por um analisador XAML, o analisador sabe por meio do ContentPropertyAttribute aplicado no Painel que qualquer conteúdo encontrado no corpo de uma marca StackPanel deve ser usado para definir o valor de Children na instância do StackPanel criada.

Outro exemplo proeminente de ContentPropertyAttribute em ação pode ser visto na classe TextBlock . TextBlock usa Inlines como sua propriedade de conteúdo, e a classe embutida padrão Run usa Text como sua propriedade de conteúdo. Em combinação, as propriedades de conteúdo habilitam uma sintaxe embutida simples, como <TextBlock>Hello</TextBlock>, embora o grafo de objeto criado por esse XAML seja mais complexo e também seja capaz de dar suporte a vários elementos embutidos explícitos, se desejado.

Construtores

ContentPropertyAttribute()

Inicializa uma nova instância da classe ContentPropertyAttribute .

Campos

Name

Indica qual propriedade de um tipo é a propriedade de conteúdo XAML. Um processador XAML usa essas informações durante o processamento de elementos filho XAML de representações XAML do tipo atribuído.

Aplica-se a

Confira também