No último tutorial de C#, o nosso caro leitor Shogun deixou uma sugestão de em vez de usar as tão comuns Windows Forms, usar também o WPF. Para ser sincero, nunca tinha utilizado WPF, mas como fiquei curioso fui à procura de mais informações. O que encontrei foi fantástico, e como tinha prometido aqui vai um pequeno tutorial/introdução sobre WPF.
O que é o WPF?
O Windows Presentation Foundation é um componente do Microsoft .NET Framework 3.5. É considerado a próxima geração de UI (User Interface), que permite a criação de aplicações com um grau de personalização extremamente elevado, criando assim uma experiência única ao utilizador.
O WPF suporta intefaces de aplicação, gráficos 2D e 3D, documentos, aceleração de hardware, gráficos vectoriais,visualização de dados interactivos e multimédia numa única estrutura (framework).
O motor do vector utiliza a aceleração de hardware das novas placas gráficas, permitindo assim tornar a interface mais rápida, escalável e com resolução independente.
Separação entre a aparência e comportamento
O WPF separa a aparência da interface do utilizador do comportamento.
A aparência no WPF é criado geralmente no XAML (Extensible Application Markup Language), o desempenho/comportamento é implementado numa linguagem de programação, como por exemplo o C#.
As duas partes estão ligadas entre di pelos eventos de ligação a dados e comandos.
A separação da aparência e comportamento tem as seguintes vantagens:
– Personalização dos modelos e das aplicações – As ferramentas de design gráfico podem trabalhar em documentos XML “simples” em vez de ter de analisar o código.
Extremamente personalizável
Devido à separação da aparência do comportamento, é extremamente simples alterar a aparência de um botão por exemplo.
O conceito de estilos permite ter um controlo da aparência idêntico ao CSS.
O exemplo seguinte mostra o quanto personalizável é a aparência.
Interface sem dependência da resolução
Todas as medidas em WPF são unidades lógicas – não pixeis. Uma unidade lógica é um 1 / 96 de polegada. Se aumentar a resolução do ecrã, a interface do utilizador fica do mesmo tamanho – se só fica mais nítida. Com o WPF a interface “acompanha” o aumento da resolução.
O que é o XAML (Extensible Application Markup Language)? O XAML é baseado no XML para criar e iniciar objectos .NET com relações hierárquicas.
Apesar de ter sido inventado originalmente para o WPF é também usado para criar qualquer tipo de “árvores” de objecto.
Agora o XAML é usado para criar interfaces de utilizador do WPF, Silverlight e também para o papel electrónico do padrão XPS.
Nota: Definição de XPS – “XML Paper Specification (XPS), é um formato de arquivo desenvolvido pela Microsoft para representar documentos portáteis, visando facilitar a distribuição de documentos entre aplicativos, sistemas operacionais e periféricos como impressoras e scanners. Diferente dos documentos de papel, documentos XPS oferecem uma conveniente alternativa para leitura, impressão, transferência e estocagem.” Fonte: Wikipédia
Principais vantagens do XMAL
Tudo o que é criado no XAML também pode ser feito no código. XAML é apenas uma outra maneira de criar e inicializar objectos. Podemos usar WPF sem usar o XAML.
• Código XAML é curto e fácil de ler • Separação do código de designer e lógica • Ferramentas de design gráfico como o Expression Blend exigir XAML como fonte. • A separação de XAML e lógica da interface do utilizador permite a clara separação dos papéis de designer e programador.
O designer pode criar toda a componente gráfica, e o programador a parte do código.
XAML vs Código Um pequeno exemplo. Usar um StackPanel simples com um TextBlock e um botão no XAML.
Agora o mesmo “efeito” mas em código C#
E agora, como fica na interface.
Por este pequeno exemplo podem verificar as vantagens do XAML. E agora passemos a um pequeno exemplo de um botão personalizado com gradiente.
O código em XAML será:
O aspecto final (um botão simples com gradiente criado com XAML):
Como podem verificar o código é muito parecido com HTML ou mesmo ASP. Devido ao interface ser extremamente personalizável, no WPF a “união” entre design gráfico e programador pode ser indispensável.
Como disse anteriomente, nunca utilizei o WPF, por isso também isto é novo para mim, mas fiquei impressionado pelas vantagens que o WPF pode trazer para uma interface mais agradável e personalizada.
Quem tiver mais curiosidade sobre o WPF pode visitar as seguintes páginas:
Fontes: