WPF - Windows Presentation Foundation
Autor: Andréa Fialho | Publicado: 2011-05-01T15:25:00-07:00

Estou estudando WPF e vou fazer um resumo e deixar as referências utilizadas.

WPF fornece uma estrutura unificada para a criação de aplicativos e experiências de alta-fidelidade no Windows que mistura aplicação UI, documentos e conteúdo de mídia.&nbsp;WPF oferece aos desenvolvedores suporte a gráficos 2D e 3D, efeitos de aceleração de hardware, escalabilidade para fatores de forma diferentes, a visualização interativa de dados, funcionalidades do Windows 7, incluindo multi-touch, conteúdo e legibilidade superior.

Leva para o desktop o conceito já existente na Web de separação entre o design e o código, permitindo que a interface seja criada por um designer e o código por um programador especializado, de maneira independente.

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.

É independente de plataforma; o mesmo código-fonte funciona tanto na web quanto para desktop e, no futuro poderá ser distribuído até em sistemas como Mac, Linux e celulares, usando o WPF/E (WPF Everywhere, que está em desenvolvimento).

Um programa que usa WPF é normalmente composto por duas partes: um arquivo XML com características especiais chamado XAML (eXtended Aplication Markup Language, pronuncia-se “zémel”), e um código para .NET (que pode ser escrito em qualquer linguagem compatível, VB.net, C#, etc). O arquivo XAML contém as diretrizes de interface, podendo ser comparado ao XHTML em relação ao ASP.net.

Agora o XAML é usado para criar interfaces de utilizador do WPF, Silverlight e também para o papel electrónico do padrão XPS.




Definição de XPS&nbsp;– “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.



Todo arquivo XAML tem algumas características:


Ele deve ter um controle “root”, que é um controle raiz que contém todos os outros. Só é permitido um “root” em cada arquivo XAML. No exemplo da figura, o “root” é a grid.
Ele está ligado a uma classe no código, indicado na propriedade “ x:Class” do elemento root. No nosso exemplo, o arquivo XAML está ligado à classe HelloWorld.Scene1
Os elementos são definidos usando tags (&amp;lt; &amp;gt; e &amp;lt; / &amp;gt;). O nível de parentesco é dado pelo encadeamento das tags.

Por exemplo:







&nbsp;Indica que o label e o button estão contidos na grid. &nbsp;


Os elementos podem conter atributos especificados de duas maneiras:

• Na tag do elemento, utilizando a sintaxe (as aspas são obrigatórias)







• Como sub-elemento do elemento principal:






A segunda maneira, embora mais complicada, é mais flexível e possibilita maior customização dos elementos. Veja abaixo um exemplo comparando as duas maneiras:





Como pudemos ver, cada XAML referencia uma classe de código que pode definir seu comportamento, de forma análoga ao code-behind do ASP.net. Este código encontra-se em um arquivo .vb ou .cs, dependendo da linguagem utilizada.&nbsp;

Podemos alterar os atributos dos elementos usando código de programação, da mesma maneira que fazemos usualmente. Por exemplo, esse código .NET muda o conteúdo do label que colocamos na janela:





Note que o label é referenciado por sua propriedade x:Name, que no caso é&nbsp;Label&nbsp;.




Desenvolvendo exemplo:



Para desenvolver o modelo abra o Expression Interactive Designer. Você verá uma tela como a mostrada na Figura 1:




Figura 1


Abaixo da barra de menus, temos o editor de código/designer. Ele mostra os arquivos que estão abertos no momento. Quando estamos visualizando um arquivo XAML, podemos alterar a visualização entre o código XAML e o designer usando as abas da parte inferior da janela.



Abaixo do editor, temos as paletas&nbsp;TimeLine&nbsp;que&nbsp;serve para controlar animações ou selecionar objetos no seu programa e&nbsp;Results que&nbsp;mostra resultados e mensagens da compilação/execução.



Ao lado da janela do editor, temos a paleta&nbsp;Tools&nbsp;, onde encontramos as ferramentas mais usadas para trabalhar com itens na janela.&nbsp;



Agora abra a paleta&nbsp;Library&nbsp;e selecione o componente&nbsp;Label&nbsp;. Clique e arraste o mouse em uma área vazia da janela para criar um novo Label. Na paletaProperties&nbsp;, altere sua propriedade&nbsp;Name&nbsp;(categoria&nbsp;Misc&nbsp;) para&nbsp;lblAloMundo&nbsp;. Altere sua propriedade&nbsp;Content&nbsp;(categoria&nbsp;Content&nbsp;) para&nbsp;Olá, WPF!&nbsp;. Pressione&nbsp;F5&nbsp;e veja que este programa já está funcionando, como mostra a Figura 2:




Figura 2






Na paleta&nbsp;Timeline&nbsp;selecione o documento&nbsp;DocumentRoot&nbsp;e na paleta&nbsp;Appearance&nbsp;altere seu fundo para um gradiente simples.&nbsp;







Isto é feito selecionando o botão de gradiente na paleta e alterando as cores de início e final, selecionando os ícones na barra da paleta e alterando as cores. Verifique que as mudanças feitas aqui se refletem nas propriedades do objeto no código XAML também.

Acabamos de criar uma aplicação StandAlone, um executável .NET. Se quisermos, podemos facilmente transformar este em um programa Web. Para isto, basta selecionar a opção&nbsp;Project/Deployment Settings&nbsp;(Figura 3) e configurar a aplicação como uma aplicação Web com confiabilidade parcial (partial trust).






Figura 3




Ao acionar F5&nbsp;a aplicação será executada no IE.



Atenção:&nbsp;As aplicações WPF para a Web podem ser executadas atualmente apenas no Internet Explorer 6.0 ou superior, e em máquinas onde o .NET 3.0 está instalado. Em breve, o módulo Web será integrado ao WPF/E, podendo ser executado em outros browsers e sistemas.



Volte as configurações para StandAlone e iremos para o VS alterar o código.&nbsp;



Salve o projeto e feche o Expression Interface Designer. Abra o Visual Studio e selecione&nbsp;File/Open Project/Solution.



Abra o projeto csproj salvo anteriormente. Note que nenhuma alteração precisa ser feita para mudarmos de ambiente. Abra a paleta&nbsp;Solution Explorer&nbsp;e dê dois cliques nos arquivos&nbsp;Scene1.xaml&nbsp;eScene1.xaml.cs&nbsp;.





No XAML, adicione aos atributos do label o atributo&nbsp;MouseDown=“lblAloMundo_MouseDown”:











Isto adiciona à label um manipulador para o evento&nbsp;MouseDown&nbsp;, que criaremos a seguir.






Abra o arquivo xaml.cs e digite o seguinte código:












Execute o programa novamente pressionando&nbsp;F5&nbsp;. Ao clicar no label, veja que o código C# está sendo executado, como mostra a Figura 4.




Figura 4




Esse é um exemplo pequeno usando Expression Interface Designer e Visual Studio dado pelo MSDN, então o processo de estudo "to be continued" com as vídeo-aulas.



Referências:

http://msdn.microsoft.com/pt-br/library/cc564903.aspx
http://windowsclient.net/wpf/
http://10rem.net/blog/2010/04/12/wpf-4-release-a-guide-to-the-new-features
http://pplware.sapo.pt/tutoriais/tutorial-c-o-que-e-o-wpf-windows-presentation-foundation/