Tutorial WPF para iniciantes

O que รฉ WPF?

WPF รฉ uma estrutura para construir Windows aplicaรงรตes que permitem aos usuรกrios desenvolver interfaces de usuรกrio ricas com animaรงรตes 3D e cores ricas com menos complexidade de cรณdigo. ร‰ um mecanismo de renderizaรงรฃo baseado em vetor que usa aceleraรงรฃo de hardware de placas grรกficas modernas, o que torna o Ul mais rรกpido e altamente escalรกvel. WPF significa Windows Apresentaรงรฃo Foundation.

O WPF pode ser considerado uma evoluรงรฃo do WinForms. Produz sistema de exibiรงรฃo grรกfica fรกcil de operar para Windows. Ele oferece fรกcil separaรงรฃo entre UI e lรณgica de negรณcios.

Os aplicativos WPF podem ser implantados em seu sistema como um programa de desktop independente ou hospedados como um objeto incorporado em um site.

Por que WPF?

Hรก muitos motivos para usar a plataforma WPF, alguns dos mais importantes sรฃo-

  • Uma plataforma ideal para usar se vocรช precisar lidar com vรกrios tipos de mรญdia
  • O WPF permite que vocรช crie uma interface de usuรกrio com skin. Tambรฉm ajuda quando vocรช precisa carregar parte da IU ou deseja vincular dados XML
  • Ele permite que vocรช aproveite os benefรญcios da grande biblioteca de classes .NET, pois ela รฉ construรญda sobre Tecnologia .NET
  • Independรชncia de resoluรงรฃo, para que aplicativos desenvolvidos usando WMF possam ser executados em dispositivos mรณveis ou em um monitor de 20 polegadas
  • WPF baseia-se em DirectX em vez de WinAPI. Oferece o sistema grรกfico do computador cliente. Portanto, oferecendo maior poder de renderizaรงรฃo grรกfica
  • Suporta um modelo de documento de fluxo que permite a qualidade de โ€œpublicaรงรฃo eletrรดnicaโ€ do layout
  • Aparรชncia e comportamento estรฃo fracamente acoplados. Isso permite que designers e desenvolvedores trabalhem em dois modelos separados
  • Na estrutura WMF vocรช pode projetar ferramentas graficamente em documentos XML simples em vez de analisar cรณdigo
  • Permite usar aceleraรงรฃo de hardware para desenhar a GUI, para melhor desempenho

Histรณria do WPF

Windows 1.0 foi o primeiro ambiente GUI do Microsoft. Funciona como uma camada sobre o DOS, contando com os sistemas GDI e USER para interface grรกfica e de usuรกrio.

DirectX foi lanรงado no ano de 1995, como um sistema grรกfico de alto desempenho. Foi voltado para jogos e outros ambientes relacionados a grรกficos. Ao longo dos anos, muitas versรตes foram lanรงadas com Directx9 que fornecem uma biblioteca para usar com cรณdigo mange.Net.

Versรฃo WPF Ano de lanรงamento Versรฃo .Net Versรฃo do Visual Studio Diferenciais
3.0 2006 3.0 N/D Lanรงamento inicial.
No entanto, o desenvolvimento do WPF pode ser feito com o VS 2005.
3.5 2007 3.5 EUA 2008 Modificaรงรฃo e melhorias em:
Modelo de aplicativo, vinculaรงรฃo, controles, documentos, anotaรงรตes e elementos Ul 3-D.
3.5 SP1 2008 3.5 SP1 N/D Suporte nativo ร  tela inicial. Novo controle de navegador da web, suporte a sombreador de pixel DirectX.
4.0 2010 4.0 EUA 2010 Novos controles: Calendรกrio. DataGrid, DatePicker. Multitoque e manipulaรงรฃo
4.5 2012 4.5 EUA 2012 Tempo de configuraรงรฃo mais rรกpido e melhor desempenho para efeitos Bitmap. Novos controles: Calendรกrio. DataGrid, DatePicker.
Multitoque e manipulaรงรฃo
4.5.1 2013 4.5.1 EUA 2013 Novo controle da faixa de opรงรตes
Nova interface INotifyDataErrorlnfo
4.5.2 2014 4.5.2 NA Nenhuma mudanรงa importante
Nenhuma mudanรงa importante
4.6 2015 4.6 EUA 2015 Suporte transparente para janela infantil
Melhorias em HDPI e Touch

A versรฃo estรกvel mais recente do WPF 5.0.6, lanรงada em abril de 2021.

Recursos do WPF

Recursos do WPF
Recursos do WPF
  • Documentos e Impressรฃo
  • Seguranรงa, acessibilidade e localizaรงรฃo
  • Oferece interoperabilidade com Windows Controles de formulรกrios
  • Direct3D รฉ usado em aplicativos grรกficos onde o desempenho รฉ importante
  • Usa o hardware da placa de vรญdeo para renderizaรงรฃo
  • Grรกficos baseados em vetores permitem dimensionar seu aplicativo sem perda de qualidade
  • WPF suporta sistema de pixels lรณgicos de ponto flutuante e cores ARGB de 32 bits
  • Redefinir estilos e modelos de controle
  • Construindo fontes internacionais a partir de fontes compostas
  • A renderizaรงรฃo de texto WPF ajuda vocรช a aproveitar as vantagens da tecnologia ClearType
  • Permite usar a tรฉcnica de cache de texto prรฉ-renderizado na memรณria de vรญdeo
  • Abordagem baseada em recursos para cada controle
  • Os temporizadores de apresentaรงรฃo sรฃo inicializados e gerenciados pelo WPF
  • A relaรงรฃo entre vรญdeo e animaรงรฃo tambรฉm รฉ suportada
  • No WPF, um estilo รฉ um conjunto de propriedades que devem ser aplicadas ao conteรบdo usado para renderizaรงรฃo visual.
  • Os modelos no WPF ajudam vocรช a alterar o Ul do seu documento
  • Os comandos sรฃo versรตes de eventos mais abstratas e pouco acopladas
  • O suporte WPF para comandos reduz a quantidade de cรณdigo que precisamos escrever

Prรณximo neste WPF Tutorial de C#, aprenderemos sobre os principais tipos e infraestrutura do WPF.

Tipos principais e infraestruturas do WPF

As aulas no WPF sรฃo divididas em quatro tipos diferentes:

  • Elemento de interface do usuรกrio
  • Elemento de Estrutura
  • Elemento de conteรบdo
  • FrameworkContentElement

Essas classes, conhecidas como classes de elementos base. Ele fornece a base para um modelo de composiรงรฃo de interfaces de usuรกrio.

As interfaces de usuรกrio do WPF sรฃo compostas de elementos montados em uma hierarquia de รกrvore. ร‰ chamada de รกrvore de elementos. A รกrvore de elementos รฉ uma forma intuitiva de fazer o layout da interface do usuรกrio. ร‰ uma estrutura que permite obter o recurso de serviรงos de UI poderosos.

XAML

Extensible Application Markup Language, chamada โ€œXAMLโ€ ou โ€œzammelโ€, รฉ uma forma declarativa de definir interfaces de usuรกrio.

Aqui estรก a definiรงรฃo XAML de um botรฃo simples:

<Button
FontSize="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
Say Hello Guru99</Button>

Vantagem de usar a linguagem XAML:

  • XAML separando a aparรชncia do front-end da lรณgica do back-end
  • XAML รฉ o mรฉtodo mais fรกcil para representar interfaces de usuรกrio
  • XAML funciona de maneira eficaz com ferramentas

Controles

A estrutura WPF oferece suporte a muitos controles รบteis, como:

  • Editando controles como TextoBox, VerificarBox, Botao de radio
  • Controles de lista, como ListaBox, ListView, TreeView
  • Informaรงรตes do usuรกrio, como Label, WPF ProgressBar, ToolTip
  • Aรงรตes como Menu, Botรฃo e Barra de Ferramentas
  • Aparรชncias como Borda, Imagem WPF e Viewbox
  • Caixas de diรกlogo comuns, como OpenFileDialog e PrintDialog.
  • Contรชineres como TabContro, ScrollBar e GroupBox
  • Layouts como DocPanel, StackPanel e Grid
  • Navegaรงรฃo como quadro e hiperlink

A aparรชncia dos controles pode ser personalizada com estilos e modelos sem programaรงรฃo. Vocรช tambรฉm pode criar um controle personalizado derivando uma nova classe de uma classe base apropriada.

Aparรชncia

O WPF fornece um recurso para personalizar a aparรชncia do seu aplicativo. Ele permite que vocรช defina objetos e valores para coisas como fontes, planos de fundo, etc.

O recurso de estilos permite padronizar uma aparรชncia especรญfica para todo o produto. Ele permite substituir a aparรชncia padrรฃo, mantendo seu comportamento padrรฃo.

O modelo de dados permite controlar a visualizaรงรฃo padrรฃo dos dados vinculados. Com a ajuda de temas, vocรช pode visualizar facilmente os estilos do sistema operacional.

Layout e Painรฉis

O layout ajuda no posicionamento adequado e no controle de dimensionamento. Faz parte do processo de composiรงรฃo da apresentaรงรฃo para o usuรกrio. A estrutura WPF facilita o processo de layout e oferece melhor adaptabilidade da aparรชncia da UI.

A infraestrutura de layout รฉ oferecida por vรกrias classes: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid e 5) Canvas

Grรกficos

WPF fornece um sistema grรกfico aprimorado como

  • O WPF usa unidades independentes de dispositivo, permitindo resoluรงรฃo e independรชncia de dispositivo. Portanto, cada pixel, que รฉ independente do dispositivo, รฉ dimensionado automaticamente com o sistema de configuraรงรฃo de pontos por polegada
  • WPF usa double em vez de float e suporta uma gama mais ampla de cores
  • O mecanismo grรกfico WPF foi projetado de forma que possa aproveitar as vantagens do hardware grรกfico quando disponรญvel

Documentos e Impressรฃo

A estrutura WPF oferece trรชs tipos de documentos:

  • Documentos fixos: Este tipo de documento suporta WYSIWApresentaรงรฃo YG.
  • Documentos de fluxo: Permite ajustar e refluir o conteรบdo com base em variรกveis โ€‹โ€‹de tempo de execuรงรฃo, como tamanho da janela e resoluรงรฃo do dispositivo.
  • Documentos XPS: ร‰ uma representaรงรฃo paginada de papel eletrรดnico em formato baseado em XML. XPS รฉ um formato de documento de cรณdigo aberto e multiplataforma.

WPF permite melhor controle sobre o sistema de impressรฃo. Inclui impressรฃo remota e filas. Alรฉm disso, os documentos XPS podem ser impressos diretamente, sem convertรช-los em formato de impressรฃo.

WPF Archiarquitetura

WPF faz parte da estrutura .NET. Ele contรฉm cรณdigo gerenciado e nรฃo gerenciado. Os componentes importantes da arquitetura WPF sรฃo explicados na figura abaixo:

WPF Archiarquitetura
WPF Archiarquitetura

Componentes da arquitetura WPF

  • Estrutura de apresentaรงรฃo: ajuda vocรช a criar elementos de nรญvel superior, como controles, estilos, layout, janelas, etc.
  • ApresentaรงรฃoNรบcleo: contรฉm tipos bรกsicos como UIElement, Visual de todos os controles e formas derivadas de PresentationFramework.dll.
  • CLR: Torna o processo de desenvolvimento produtivo, oferecendo recursos como gerenciamento de memรณria, tratamento de erros, etc.
  • Milcore: Milcore faz parte do cรณdigo nรฃo gerenciado que oferece forte integraรงรฃo com DirectX.
  • DirectX: ร‰ a API de baixo nรญvel que permite renderizar grรกficos do WPF. As conversas DirectX interagem com os drivers e renderizam o conteรบdo.
  • Usuรกrio32: ร‰ uma API central amplamente usada por muitos programas. Ele gerencia a memรณria e a separaรงรฃo de processos. User32 ajuda vocรช a decidir qual elemento serรก colocado na tela.
  • do kernel: A entrada se origina como um sinal em um driver de dispositivo no modo kernel e รฉ roteada para o processo correto e conectando-se com Windows kernel e User32.

Instalaรงรฃo WPF

Consulte este link para instalar o WPF https://www.guru99.com/download-install-visual-studio.html

A seguir neste tutorial de aplicaรงรฃo WPF, construiremos nosso primeiro WPF.

Como criar seu primeiro aplicativo WPF?

Neste exemplo WPF, desenvolveremos um aplicativo WPF bรกsico. Entรฃo, vamos comeรงar a implementaรงรฃo simples seguindo as etapas fornecidas nos exemplos de aplicativos WPF abaixo.

Passo 1) No Visual Studio vรก em Arquivo > Projeto

Crie seu primeiro aplicativo WPF

Passo 2) Na nova janela do projeto

  1. Selecione o aplicativo WPF
  2. Digite o nome como โ€œMyWPFโ€
  3. clique em OK

Crie seu primeiro aplicativo WPF

Passo 3) O Visual Studio cria dois arquivos por padrรฃo

  • Arquivo XAML (MainWindow.xaml)
  • Arquivo CS (MainWindow.xaml.cs)

Crie seu primeiro aplicativo WPF

O MainWindow.xaml tem

  1. Uma janela de design
  2. Arquivo XAML

Crie seu primeiro aplicativo WPF

Nas janelas XAML, as tags a seguir sรฃo gravadas como padrรฃo

Crie seu primeiro aplicativo WPF

A Grade รฉ o primeiro elemento por padrรฃo.

O MainWindow.xaml.cs contรฉm o cรณdigo correspondente por trรกs do arquivo de design XAML

Crie seu primeiro aplicativo WPF

Passo 4) Na caixa de ferramentas,

  1. Arrastar textoBox elemento para a janela de design
  2. Um textoBox aparecerรก na janela de design
  3. Vocรช verรก o cรณdigo XAML para TextoBox adicionado

Crie seu primeiro aplicativo WPF

Passo 5) Altere o texto para โ€œPrimeiro programa WPFโ€.

Crie seu primeiro aplicativo WPF

Passo 6) Clique no botรฃo Iniciar

Crie seu primeiro aplicativo WPF

Passo 7) Vocรช verรก uma janela na saรญda

Crie seu primeiro aplicativo WPF

Parabรฉns! Vocรช projetou e criou seu primeiro aplicativo WPF. A seguir neste tutorial do WPF para iniciantes, veremos a diferenรงa entre WPF e WinForms.

WPF x WinForms

WPF WinFormsGenericName
ร‰ uma estrutura mais recente, por isso estรก mais em sintonia com os padrรตes atuais. ร‰ mais antigo, por isso รฉ mais experimentado e testado.
ร‰ flexรญvel e rico em recursos. Vocรช pode projetar aplicativos muito ricos sem codificar ou comprar controles. Nรฃo tรฃo rico em recursos
Desenvolvedores de 3rd os controles partidรกrios estรฃo focados na compatibilidade com o WPF, pois รฉ o futuro. Existem muitos controles de terceiros que vocรช pode comprar ou obter gratuitamente.
XAML permite criar e editar sua GUI facilmente. Permite que o trabalho seja dividido entre um designer (XAML) e um programador (C#, ASP.net, etc.). In Windows Forma todo o cรณdigo escrito em um sรณ lugar.
WPF pode criar interfaces de usuรกrio para ambos Windows aplicativos e aplicativos da web como Silverlight e XBAP. Nรฃo existe esse apoio
O conjunto de controle in-box do WPF รฉ limitado Os controles na caixa sรฃo muito poderosos

Tipo de aplicativos criados com WPF

  • O WPF estรก tentando substituir os formulรกrios da web e os formulรกrios do Windows โ€“ os aplicativos podem ser criados para serem executados em um navegador ou em uma janela independente
  • Windows Formulรกrios e pรกginas WPF podem coexistir no mesmo aplicativo
  • Vocรช pode desenvolver aplicativos de pรกgina/janela

Guia rรกpido

  • O formulรกrio completo do WPF รฉ Windows Apresentaรงรฃo Foundation
  • ร‰ uma plataforma ideal para usar se vocรช precisar lidar com vรกrios tipos de mรญdia
  • Windows 1.0 foi o primeiro ambiente GUI do Microsoft que estava trabalhando em DOS e contando com os sistemas GDI e USER
  • WPF em .NET oferece interoperabilidade com Windows Controles de formulรกrios
  • WPF sรฃo divididos em quatro tipos diferentes, como UIElement, FrameworkElement ContentElement e FrameworkContentElement
  • Os componentes mais importantes de parte da arquitetura WPF sรฃo PresentationFramework, PresentationCore, CLR, Milcore, DirectX, User32 e Kernel
  • WPF รฉ uma estrutura mais recente que compara WinForms, por isso estรก mais em sintonia com os padrรตes atuais
  • Windows Formulรกrios e pรกginas WPF podem coexistir no mesmo aplicativo

Resuma esta postagem com: