De que se trata o artigo

O artigo fará uma explanação de alguns dos recursos relacionados especificamente ao visual das aplicações WPF, através de quatro tópicos fundamentais: Styles, Templates, Skins e Themes. Estes recursos que até então eram figuras conhecidas no mundo do desenvolvimento Web como, por exemplo, em ASP.NET, agora estão disponíveis também para as aplicações Desktop por meio do WPF (Windows Presentation Foundation).


Em que situação o tema é útil

Com o decorrer do tempo, durante o desenvolvimento de uma aplicação WPF, algumas necessidades em termos visuais são sentidas. Entre elas, podemos citar a definição de um padrão de estilização para os controles visuais, algum modelo referente à forma de como determinado tipo de controle deve ser apresentado na interface de usuário, bem como a capacidade da aplicação suportar a utilização de skins que alteram sua aparência, a critério do usuário final e de forma dinâmica. Todas essas necessidades são devidamente supridas por recursos oferecidos pelo próprio Windows Presentation Foundation e que serão abordados neste artigo através de Styles, Templates, Skins e Themes.

Styles, Templates, Skins e Themes no WPF

A ideia do artigo é proporcionar ao leitor mais uma abordagem técnica de um, entre os inúmeros temas ligados à tecnologia WPF e à construção de aplicações deste tipo utilizando o Delphi Prism. O assunto escolhido, tem como foco principal, além da parte técnica e conceitual, mostrar as novas possibilidades que o casamento entre Delphi Prism e o .NET Framework pode proporcionar à comunidade Delphi. Esta união se torna ainda mais perfeita pelo fato do Delphi Prism ter o Oxygene como sua linguagem padrão, baseada no Object Pascal do Delphi. Além disso, por si só, o WPF inovou, disponibilizando recursos para o manuseio visual de aplicações Desktop, tais como Styles, Templates, Skins e Themes, que são itens que até então não eram tão comuns para este segmento. Para a demonstração de como cada um dos recursos pode ser empregado no WPF, será utilizada uma abordagem prática, através do uso de exemplos de situações fictícias.

O Delphi Prism é o atual IDE da Embarcadero para o desenvolvimento .NET, suportando as versões mais recentes do framework e utilizando o shell do Visual Studio como sua base principal. Dessa forma, tecnologias nativas Microsoft, como Windows Presentation Foundation (WPF), Silverlight, WCF e LINQ agora estão disponíveis também para o mundo Delphi. Tudo isso de forma facilitada, uma vez que a linguagem utilizada pelo Delphi Prism, a Oxygene (também tratada como D#), é toda baseada em Object Pascal, que é a linguagem do Delphi tradicional. Sendo assim, a curva de aprendizado é atenuada, se comparada a uma eventual mudança para o C#, por exemplo.

Nota do DevMan

Oxygene, anteriormente conhecida como Chrome, é uma linguagem de programação baseada em Object Pascal desenvolvida pela empresa RemObjects Software, voltada para o desenvolvimento .NET. Em meados de 2008, a RemObjects licenciou seus produtos (compilador e IDE) para a Embarcadero, resultando na IDE Delphi Prism, que se integra devidamente ao Visual Studio, aproveitando todos os recursos oferecidos pelo framework da Microsoft.

WPF

Com a reabertura do universo .NET para o Delphi, proporcionada pelo Delphi Prism, surgiu a possibilidade de construção de novos tipos de aplicações, no qual podemos citar as aplicações com interfaces ricas. Neste ponto surge o Windows Presentation Foundation, ou simplesmente WPF, que é o framework da Microsoft para a construção de aplicações que proporcionam um alto grau de experiência com o usuário, através de poderosos recursos visuais (incluindo gráficos 2D e 3D e animações) e suporte a multimídia (áudio e vídeo). Toda a definição visual do WPF se dá por meio de uma linguagem de marcação especial denominada XAML (eXtensible Application Markup Language), que é baseada em outra linguagem de marcação, a XML (Extensible Markup Language). Somam-se a isso, algumas outras vantagens oferecidas pela tecnologia que justificam sua adoção:

• Ao estudar o framework WPF, obtém-se um nível de conhecimento necessário não só para o desenvolvimento de aplicações, como também para o manuseio de segmentos tratados em separado por outras tecnologias, como é caso dos recursos de áudio, vídeo, animações, gráficos 2D e 3D;

• O WPF utiliza-se do processamento gráfico do computador, ao invés do processamento central, obtendo assim um melhor índice de renderização, resultando em características gráficas mais suaves e de mais qualidade;

• Os arquivos XAML, que definem toda sua interface visual, possuem um arquivo de code-behind associado, fazendo com que o código da interface de usuário fique separado do código de negócio. Dessa forma, o trabalho entre os profissionais de designer e programação pode ser facilmente dividido;

• A composição visual oferecida pelo framework Windows Presentation Foundation proporciona ao desenvolvedor um nível de flexibilidade muito alta possibilitando, por exemplo, a composição de um controle através da combinação de outros (por exemplo, um Button contendo em seu interior um StackPanel e um TextBlock). Assim sendo, produzem-se controles customizados e únicos.

Ainda sobre XAML, na Listagem 1 pode ser conferida a estrutura padrão de uma janela WPF, cuja definição se dá por meio desta linguagem de marcação.

Listagem 1. Código XAML que define uma janela padrão no WPF


  <?xml version='1.0' encoding='utf-8' ?>
  <Window x:Class="WPFApplication1.Window1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Window1" Height="300" Width="300">
    <Grid>
    </Grid>
  </Window>

Outra observação a se fazer é que as aplicações WPF podem ser destinadas tanto para o ambiente Web, quanto Desktop, sendo esta última a mais empregada. Tanto é que a tecnologia é taxada como a sucessora das aplicações Windows Forms (“carro-chefe” da Microsoft, para aplicações Win32 até então). Além disso, alguns recursos que em outras tecnologias se aplicam exclusivamente a um ambiente ou outro, com o WPF não existe esta distinção (Web e Desktop). Neste contexto se encaixa a parte de padronização e estilização visual, oferecida por quatro recursos especiais denominados Styles, Templates, Skins e Themes, que podem ser popularmente traduzidos como estilos, modelos, peles e temas, respectivamente.

Styles

No desenvolvimento Web, o termo Style é relacionado à linguagem de estilo denominada CSS (Cascading Style Sheet). Ela é utilizada para definir a apresentação de documentos que utilizam determinada linguagem de marcação, como o HTML, que é o exemplo mais popular. Em termos técnicos, o CSS provê uma ideal separação entre o conteúdo e o formato do documento. O desenvolvedor pode, então, definir em um arquivo separado os estilos que serão usados por cada tipo de elemento presente no documento e depois apenas vincular este arquivo aos documentos HTML que deverão receber a estilização.

A estrutura de um estilo CSS, essencialmente, define as propriedades de um elemento e seus respectivos valores, formando assim um conjunto de regras. A seguir é mostrada uma declaração de um estilo simples para o elemento HTML body, onde são definidas sua margem e cor de fundo:


  body {
        margin: 5px 10px;
        background-color: #0f0;
  }

De forma semelhante ao que acontece com CSS e HTML, no WPF o principal objetivo de um estilo é a separação dos valores das propriedades dos elementos da interface de usuário, além de ser o ponto de partida, tecnicamente falando, para a definição dos recursos de Templates, Skins e Themes.

Templates

Novamente citando o desenvolvimento Web, os Templates são modelos de design pré-definidos que definem a apresentação visual de uma página Web, estipulando a separação entre layout e conteúdo. São também conhecidos como Web Templates. Em um template é possível, por exemplo, definir as imagens de decoração e toda a estrutura de linhas e colunas que uma página irá ter, bem como os locais onde o conteúdo desta deverá ser mostrado.

No caso do WPF, mais especificamente no caso deste artigo, serão abordados os templates relativos aos controles de uma aplicação, denominados Control Templates. Estes, assim como os Web Templates, têm a função de estabelecer um modelo para os elementos da interface visual. Através de Control Templates, o WPF permite, entre outras coisas, alterar a aparência visual por completo de determinado controle, sem que suas propriedades nativas sejam afetadas.

...

Quer ler esse conteúdo completo? Tenha acesso completo