Compartilhar via


Estilos e Templates Embutidos

O Windows Presentation Foundation (WPF) fornece Style objetos e objetos de modelo (FrameworkTemplate subclasses) como uma maneira de definir a aparência visual de um elemento em recursos, para que eles possam ser usados várias vezes. Por esse motivo, atributos em XAML que utilizam os tipos Style e FrameworkTemplate quase sempre fazem referências a recursos, estilos e modelos existentes em vez de definir novos recursos.

Limitações de estilos inline e templates

Em XAML (Extensible Application Markup Language), as propriedades de estilo e modelo podem tecnicamente ser definidas de duas maneiras. Você pode usar a sintaxe de atributo para referenciar um estilo que foi definido dentro de um recurso, por exemplo<, objetoStyle="{StaticResourcemyResourceKey}" .../>. Ou você pode usar a sintaxe do elemento de propriedade para definir um estilo em linha, por exemplo:

< objeto>

< objeto.Style>

< Style .../>

</ objeto.Style>

</ objeto>

O uso do atributo é muito mais comum. Um estilo que é definido inline e não em recursos está necessariamente limitado apenas ao elemento que o contém, e não pode ser reutilizado facilmente porque não possui uma chave de recurso. Em geral, um estilo definido por recursos é mais versátil e útil e está mais de acordo com o princípio geral do modelo de programação do WPF (Windows Presentation Foundation) de separar a lógica do programa no código do design na marcação.

Normalmente, não há motivo para definir um estilo ou modelo embutido, mesmo que você pretenda usar apenas esse estilo ou modelo nesse local. A maioria dos elementos que podem usar um estilo ou modelo também dá suporte a uma propriedade de conteúdo e a um modelo de conteúdo. Se você estiver usando apenas qualquer árvore lógica criada por meio de estilo ou modelagem uma vez, seria ainda mais fácil preencher essa propriedade de conteúdo com os elementos filho equivalentes na marcação direta. Isso ignoraria completamente os mecanismos de estilo e modelo.

Outras sintaxes habilitadas por extensões de marcação que retornam um objeto também são possíveis para estilos e modelos. Duas dessas extensões que têm cenários possíveis incluem TemplateBinding e Binding.

Consulte também