Em WPF, templates são utilizados para determinar a estrutura de um controle. Eles determinam quais componentes fazem parte de um controle e como eles interagem para fornecer os recursos do mesmo. Ou seja, os templates permitem ao desenvolvedor alterar a forma como o controle é mostrado na tela ou como o mesmo mostra seus dados. Trata-se de um conceito muito útil na hora de personalizar as aplicações WPF.
A grande sacada da Microsoft no sentido de desenvolver aplicações com experiências de usuário mais ricas foi o desenvolvimento do Windows Presentation Foundation – o WPF. Trata-se de uma tecnologia muito interessante, que oferece uma completa separação entre a interface de usuário e a lógica de negócios, que é uma técnica que tem se difundido nos últimos tempos. Essa difusão ocorreu porque se trata de um padrão de projetos que torna muito mais simples a divisão de tarefas entre as equipes de desenvolvimento. Além disso, essa abordagem permite que cada atividade seja desenvolvido por um especialista, maximizando a performance e a qualidade da aplicação.
Para o desenvolvimento da interface, o WPF fornece uma série de ferramentas muito interessantes como Data Binding, Styles, Triggers e Templates, que são o foco desse artigo. Cada uma dessas ferramentas possui o seu escopo e, para cada situação, cabe ao desenvolvedor escolher o que melhor se encaixa. A diferença entre elas está na abordagem. Os Styles são responsáveis pela determinação da aparência dos controles. A tecnologia de Data Binding é responsável por associar os dados aos controles, como o próprio nome sugere (Binding, em inglês, significa ligação). Triggers são gatilhos, responsáveis pelo acionamento de eventos e propriedades no código XAML. Por fim, mas não menos importante, os Templates são responsáveis pela determinação da estrutura de cada um dos controles e da amostragem dos dados.
Em WPF, trabalha-se com dois tipos de Templates, que, como o próprio nome indica, são relacionados aos controles e aos dados: Control e Data Templates. Um Control Template é utilizado para definir a estrutura do controle, ou seja, como o controle será mostrado na tela, qual será o componente utilizado para mostrar algum conteúdo, entre outras coisas. Em outras palavras, um Control Template é utilizado para definir as coisas com a qual o controle é feito. Já os Data Templates são utilizados para uma melhor demonstração dos dados em uma aplicação WPF. Um Data Template é uma árvore de elementos para serem expandidos em um determinado contexto. Ou, em uma definição mais clara, é uma forma de definir como os dados serão mostrados na tela. São utilizados juntamente com comboBoxes, listBoxes ou afins, geralmente para realizar a demonstração de vários campos de dados em um banco. Os conceitos serão vistos com mais detalhes e particularidades ao longo do artigo.
Styles, Triggers, Properties e Control Templates
Estilos são utilizados para definir o visual de um controle. Propriedades definem o comportamento do controle. Control Templates são utilizados para alterar a composição estrutural do controle, a forma como ele é visto. E gatilhos são utilizados em estilos e templates para alterar alguma propriedade do controle quando determinada ação acontece. Essas são, em bem poucas (e gerais) palavras, as definições desses quatro conceitos que compõem o núcleo de qualquer controle em WPF. Eles possuem diferenças básicas, mas também outras, mais sutis.
Primeiramente, é importante para o leitor entender que Templates são diferentes de Estilos em muitos sentidos. Com estilos é possível alterar as propriedades do controle para modificar sua aparência. Templates oferecem uma forma de modificar mais profundamente um controle, alterando sua estrutura visual bem como seu comportamento. Eles permitem uma reestruturação completa de um controle qualquer. Porém, é importante perceber que, independentemente do uso de estilos ou templates, os controles vão continuar basicamente os mesmos com relação ao que eles fazem. O desenvolvedor pode alterar substancialmente a forma como um botão é mostrado, por exemplo, mas não pode modificar o fato de que ele é um controle para ser clicado.
Em WPF, existe uma série de gatilhos que são utilizados quando uma condição específica é satisfeita. Esses gatilhos são chamados de Triggers e possuem três tipos:
· Property Triggers: é ativado quando uma propriedade chega a um determinado valor;
· Event Triggers: é ativado quando um determinado evento acontece;
· Data Triggers: é ativado quando uma expressão de ligação (Binding Expression) atinge um determinado valor.
Triggers somente estão disponíveis em estilos e templates e são utilizados, entre outras aplicações, para criação de efeitos visuais em controles. Trata-se de uma solução muito interessante para fornecer interfaces de usuário mais atrativas.
Outro ponto importante é o fato de que estilos podem ter seus próprios Control Templates associados. Como os estilos são utilizados para definir a aparência dos controles, de uma forma bem generalizada eles podem ter seus próprios templates. Isso acontece porque cada estilo possui uma propriedade chamada Template, que é responsável, obviamente, por definir o template associado àquele estilo. Nesses casos, quando o controle referencia aquele estilo, ele acaba obtendo por tabela o acesso ao template relacionado ao mesmo. Além disso, o Control Template utiliza os valores das propriedades que são definidas pelo estilo. Cas ...
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.