Ler em inglês

Compartilhar 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.

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

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Comentários

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

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 uma forma 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 de 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 Painel 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

Produto Versões
WinRT Build 10240, Build 10586, Build 14383, Build 15063, Build 16299, Build 17134, Build 17763, Build 18362, Build 19041, Build 20348, Build 22000, Build 22621, Build 26100

Confira também