ContentPropertyAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |