Tutorial C# – O que é o WPF (Windows Presentation Foundation)

20 Comentários

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.
wpf000


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.

wpf001

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.

wpf002

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.

wpf003

Agora o mesmo “efeito” mas em código C#

wpf004

E agora, como fica na interface.

wpf005

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á:

wpf006

O aspecto final (um botão simples com gradiente criado com XAML):

wpf007

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:

Partilhar:
Tags:

Comentários

20

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Pokemon
    Pokemon

    1st!!

    sem duvida algo espectacular da microsoft!!

  2. Avatar de Shogun
    Shogun

    Muito boa apresentação ao WPF, quando tiver aqui ppl novo voulhes dar esta apresentação, para poupar tempo e voz 😛

    Olha entretanto mais uma curiosidade que podem pesquisar sobre WPF, bindings , que são das melhores inovacoes no WPF 😉

    Bem jogado Hélio 😛

  3. Avatar de Shogun
  4. Avatar de Frigo
    Frigo

    Boa. Alguém que domine WPF era bom uns tutoriais!

    PS: quem tirou os print screens anda a ler pouco o pplware, há por aí muito software para os fazer obtendo imagens bem legíveis 😛

    1. Avatar de Shogun
      Shogun

      Se houvesse tempo ate os fazia mas infelizmente, isto anda cmplicado, o unico tempo k tenho e entre downloads de aplicacoes como agora lol

    2. Avatar de Hélio Moreira
      Hélio Moreira

      Olá Frigo,

      Estás a falar dos print screen do artigo? Se sim, não te esqueças que se deve “clicar” em cima das imagens para ter melhor resolução… 🙂

  5. Avatar de Daffy
    Daffy

    Melhor melhor, era brincar com o Silverlight, o wpf está um bocadinho parado. Assim nem era preciso fazer print screen’s e colocavam os exemplos directamente nos post’s 😉

    1. Avatar de Hélio Moreira
      Hélio Moreira

      No WPF tive mesmo de fazer os print screens, pois o código fazia com que o botão (por exemplo) ficava no site.

      Cumps,
      Hélio

  6. Avatar de Mário

    Bem, não é só dizer mal da Microsoft. O C# assim como as as versões Express que disponibilizam do Visual Studio são a meu ver EXCELENTES.

    A minha maior experiencia é em C mas desde que tive conhecimento do C# que estou completamente pasmado. É claro que cada uma tens as suas vantagens e desvantagens (e aplicações diferentes), mas o C# cada vez me surpreende mais pela produtividade! A quantidade de coisas que se podem fazer em relativamente poucas linhas. Alem de ter a sintaxe mais intuitiva que já experimentei até hoje.

    Obrigado pelo tutorial e partilha!

  7. Avatar de ViajantE
    ViajantE

    Uma pequena correcção, onde diz “XAML (Extensible Application Larkup Language)” deveria ser Markup Language e não Larkup Language.

    Bom artigo 🙂

    1. Avatar de Hélio Moreira
      Hélio Moreira

      Corrigido. Erro na digitação. Obrigado.

      Cumps
      HM

  8. Avatar de Nuno Silva
    Nuno Silva

    Estou gostar do que estou a ver muito poderoso !!

  9. Avatar de Carlos
    Carlos

    É realmente algo muito bom. Devem explorar e aprender. WPF e Silverlight é o futuro de muitas aplicações 😉

  10. Avatar de leitorassiduo
    leitorassiduo

    Ora aí está os bons dos tutoriais de programação.. É disso que o meu povo gosta 😀

    Muito bom post, keep it going 😉

  11. Avatar de Joddys
    Joddys

    Muito efeito visual para pouco resultado.
    Desapontador…mas engana bem a maioria.

    1. Avatar de naos
      naos

      Não te esqueças que às vezes o principal é a apresentação, senão programavamos todos em C++.

      Cheers

    2. Avatar de Shogun
      Shogun

      Pouco resultado? Pelo menos apresenta argumentos quando fazes uma critica, pois criticar por meias palavras qualquer um o faz, mas e tipico do ppl de linux criticar apenas porque sao anti-microsoft.

  12. Avatar de RICRIB
    RICRIB

    Sem dúvida que Silverlight e WPF são ferramentas que podem e devem ser exploradas. Vale a pena brincar um pouco e abrir os horizontes. Quanto à questão Eficiência vs Eficácia ainda não tenho uma opinião formada. O Siverlight apesar de correr em Web, necessita que o tenha instalada framework no client e parece-me apenas funcionar correctamente em IE, o que coloca em causa muitas dúvidas em relação a compatibilidade, principalmente quanto se inicia um projecto e temos que decidir que feramentas utilizar. O wpf também tem várias vantagens mas acredito mais que o futuro das aplicações é Web com os serviços a correr em win app ou web serv.

  13. Avatar de Edson Jesus
    Edson Jesus

    Olá, bom dia!
    Preciso de uma ajuda para manipulação de janelas.
    Gostaria que uma janela em específico ficasse em estado hide.
    Alguém sabe me dizer como conseguir este efeito, ou me indicar, onde posso obter esta resposta.
    Estou trabalhando com vb.net.

    Grato

    Edson

  14. Avatar de Anderson
    Anderson

    Ótimo artigo, ainda hoje em 2017 está servindo, sempre há novatos como eu que precisam desta base, parabéns pelo artigo!