Tutorial WPF para iniciantes

โšก Resumo Inteligente

WPF (Windows Apresentaรงรฃo Foundation) รฉ Microsoftestrutura para construir riqueza Windows Aplicaรงรตes para desktop. Iniciantes aprendem como XAML, vinculaรงรฃo de dados e grรกficos com aceleraรงรฃo por hardware se combinam para criar interfaces de usuรกrio escalรกveis โ€‹โ€‹e visualmente ricas com menos cรณdigo.

  • ๐Ÿงญ Foundation: WPF รฉ uma estrutura de interface de usuรกrio baseada em vetores e com tecnologia DirectX, integrada ร  plataforma .NET.
  • ???? Marcaรงรฃo XAML: A sintaxe XML declarativa separa o design da interface da lรณgica de negรณcios em C#.
  • ๐Ÿงฑ Architextura: PresentationFramework, PresentationCore e Milcore cooperam acima do DirectX para renderizaรงรฃo.
  • ๐Ÿ”— Ligaรงรฃo de dados: A vinculaรงรฃo integrada conecta os controles ร s fontes de dados e viabiliza o padrรฃo MVVM.
  • ๐Ÿ› ๏ธ Inรญcio prรกtico: Os modelos do Visual Studio permitem que vocรช crie e execute seu primeiro aplicativo WPF em sete etapas.
  • ๐Ÿš€ Relevรขncia moderna: O WPF รฉ de cรณdigo aberto e รฉ distribuรญdo com o .NET 10 sob suporte de longo prazo.

Tutorial WPF para iniciantes

O que รฉ WPF?

WPF รฉ uma estrutura para construir Windows WPF รฉ um aplicativo que permite aos desenvolvedores criar interfaces de usuรกrio ricas com animaรงรตes 3D e cores vibrantes, utilizando menos complexidade de cรณdigo. ร‰ um mecanismo de renderizaรงรฃo vetorial que usa a aceleraรงรฃo de hardware das placas grรกficas modernas, o que torna a interface do usuรกrio mais rรกpida e altamente escalรกvel. Windows Apresentaรงรฃo Foundation.

O WPF pode ser considerado uma evoluรงรฃo do WinForms. Ele fornece um sistema de exibiรงรฃo grรกfica fรกcil de operar para Windows e oferece uma separaรงรฃo clara entre a interface do usuรกrio e a lรณgica de negรณcios.

Os aplicativos WPF sรฃo normalmente implantados como programas de desktop independentes, mas tambรฉm podem ser hospedados como objetos incorporados em outros aplicativos.

Por que WPF?

Existem muitas razรตes para usar a plataforma WPF. Algumas das principais sรฃo:

  • Uma plataforma ideal para usar se vocรช precisar lidar com vรกrios tipos de mรญdia
  • O WPF permite criar uma interface de usuรกrio com temas personalizados. Ele tambรฉm รฉ รบtil quando vocรช precisa carregar apenas uma parte da interface ou 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, permitindo que aplicativos desenvolvidos com WPF sejam executados em telas pequenas de tablets ou em monitores de 20 polegadas.
  • O WPF utiliza o DirectX em vez da WinAPI. Ele usa o sistema grรกfico do computador cliente, oferecendo, portanto, maior poder de renderizaรงรฃo grรกfica.
  • Suporta um modelo de documento de fluxo que permite um layout com qualidade de "editoraรงรฃo eletrรดnica".
  • Aparรชncia e comportamento sรฃo fracamente acoplados. Isso permite que designers e desenvolvedores trabalhem em dois modelos separados.
  • No framework WPF, vocรช pode projetar ferramentas graficamente usando documentos XML simples em vez de analisar cรณdigo.
  • Permite usar aceleraรงรฃo de hardware para desenhar a GUI, para melhor desempenho

Em seguida, vejamos como a estrutura evoluiu ao longo do tempo.

Histรณria do WPF

Windows 1.0 foi o primeiro ambiente GUI do MicrosoftFuncionava como uma camada sobre o DOS, dependendo dos sistemas GDI e USER para grรกficos e interface do usuรกrio.

O DirectX foi introduzido em 1995 como um sistema grรกfico de alto desempenho voltado para jogos e outros ambientes relacionados a grรกficos. Ao longo dos anos, muitas versรตes foram lanรงadas, e o DirectX 9 forneceu uma biblioteca que podia ser usada com cรณdigo .NET gerenciado.

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 aplicaรงรฃo, vinculaรงรฃo, controles, documentos, anotaรงรตes e elementos de interface de usuรกrio 3D.
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, Seletor de Data. Suporte para multitoque e manipulaรงรฃo.
4.5 2012 4.5 EUA 2012 Inicializaรงรฃo mais rรกpida e desempenho aprimorado na exibiรงรฃo de grandes conjuntos de dados.
Novo controle Ribbon e interface INotifyDataErrorInfo para validaรงรฃo de dados.
4.5.1 2013 4.5.1 EUA 2013 Pequenas melhorias de desempenho e confiabilidade.
4.5.2 2014 4.5.2 NA Nenhuma mudanรงa importante
4.6 2015 4.6 EUA 2015 Suporte transparente para janela infantil
Melhorias em HDPI e Touch
4.8 2019 4.8 EUA 2019 รšltima versรฃo principal do .NET Framework, com correรงรตes para alta DPI e melhorias de acessibilidade.
.NET Core 3.0 em diante 2019-presente .NET Core 3.0 para .NET 10 VS 2019/2022 O WPF torna-se de cรณdigo aberto e รฉ distribuรญdo com o .NET moderno (os aplicativos permanecem). Windows-apenas).

O WPF nรฃo รฉ mais versionado separadamente do .NET. Desde 2019, ele รฉ distribuรญdo como um componente de cรณdigo aberto da plataforma .NET moderna, e a versรฃo atual estรก incluรญda no .NET 10, que chegou em novembro de 2025 como uma versรฃo de suporte de longo prazo (LTS).

Recursos do WPF

O diagrama abaixo agrupa as principais funcionalidades do WPF, listadas em detalhes a seguir.

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
  • Os grรกficos vetoriais permitem que vocรช dimensione seu aplicativo sem perda de qualidade.
  • O WPF suporta um 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 em WPF aproveita a 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
  • Em WPF, um estilo รฉ um conjunto de propriedades que devem ser aplicadas ao conteรบdo usado para renderizaรงรฃo visual.
  • Os modelos em WPF ajudam vocรช a alterar a interface do usuรกrio do seu documento.
  • Os comandos sรฃo mais absolutostract e versรฃo fracamente acoplada dos eventos
  • O suporte WPF para comandos reduz a quantidade de cรณdigo que precisamos escrever

Prรณximo neste WPF Tutorial de C#Vamos aprender sobre os tipos principais e a 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 sรฃo conhecidas como classes de elementos base. Elas fornecem 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 que sรฃo organizados em uma hierarquia em forma de รกrvore, chamada รกrvore de elementos. A รกrvore de elementos รฉ uma maneira intuitiva de estruturar interfaces de usuรกrio e รฉ a estrutura que permite obter serviรงos de interface de usuรกrio robustos.

XAML

A Linguagem de Marcaรงรฃo de Aplicativos Extensรญvel, tambรฉm chamada de "XAML" (pronuncia-se "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>

Vantagens de usar a linguagem XAML:

  • XAML separa 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 eficazmente com ferramentas de design.

Controles

O framework WPF suporta 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 TabControl, ScrollBar e GroupBox
  • Layouts como DockPanel, 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.

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

Layout e Painรฉis

O layout auxilia no posicionamento e dimensionamento adequados dos controles. Faz parte do processo de composiรงรฃo da apresentaรงรฃo para o usuรกrio. O framework WPF facilita o processo de layout e oferece maior adaptabilidade ร  aparรชncia da interface do usuรกrio.

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

Grรกficos

O WPF oferece um sistema grรกfico aprimorado:

  • O WPF utiliza unidades independentes de dispositivo, permitindo independรชncia de resoluรงรฃo e de dispositivo. Cada pixel independente de dispositivo รฉ dimensionado automaticamente de acordo com a configuraรงรฃo de pontos por polegada (DPI) do sistema.
  • 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

O framework 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 um documento eletrรดnico em formato baseado em XML. XPS รฉ um formato de documento aberto e padronizado.

O WPF permite um melhor controle do sistema de impressรฃo, incluindo impressรฃo remota e filas de impressรฃo. Alรฉm disso, documentos XPS podem ser impressos diretamente sem a necessidade de conversรฃo para um formato de impressรฃo especรญfico.

Com os elementos bรกsicos jรก explicados, vejamos como essas peรงas se encaixam internamente.

WPF Archiarquitetura

O WPF faz parte do framework .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รงรฃoAjuda vocรช a criar elementos de nรญvel superior, como controles, estilos, layout, janelas, etc.
  • ApresentaรงรฃoNรบcleoContรฉm tipos bรกsicos como UIElement e Visual, dos quais todos os controles e formas em PresentationFramework.dll sรฃo derivados.
  • 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 renderiza os grรกficos do WPF. O DirectX interage com os drivers e renderiza o conteรบdo.
  • Usuรกrio32: ร‰ uma API central amplamente utilizada por muitos programas. Ela gerencia a memรณria e a separaรงรฃo de processos. O User32 ajuda a decidir qual elemento serรก posicionado em qual local da tela.
  • do kernel: A entrada se origina como um sinal em um driver de dispositivo em modo kernel e รฉ roteada para o processo correto conectando-se ao Windows kernel e User32.

Vinculaรงรฃo de dados WPF

A vinculaรงรฃo de dados รฉ um dos conceitos mais poderosos do WPF. Em vez de escrever cรณdigo que copia manualmente valores entre controles e objetos, vocรช declara uma conexรฃo em XAML e o WPF mantรฉm ambos os lados sincronizados automaticamente. Por exemplo:

<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />

O WPF suporta quatro modos de vinculaรงรฃo:

  • Mรฃo รšnica: O controle รฉ atualizado quando os dados de origem sรฃo alterados.
  • Bidirecional: As mudanรงas fluem em ambas as direรงรตes entre o controle e a fonte.
  • Uma vez: O controle lรช o valor de origem apenas uma vez, no momento do carregamento.
  • OneWayToSource: O controle envia seu valor para a fonte, nunca o contrรกrio.

A vinculaรงรฃo de dados tambรฉm รฉ o mecanismo por trรกs do padrรฃo MVVM (Model-View-ViewModel), a arquitetura mais comum para aplicativos WPF profissionais, porque permite que a visualizaรงรฃo permaneรงa em XAML enquanto a lรณgica reside em classes C# testรกveis.

๐Ÿ’ก Dica: Implemente a interface INotifyPropertyChanged em suas classes de dados. Sem ela, a interface do usuรกrio nรฃo serรก atualizada quando os valores das propriedades forem alterados no cรณdigo.

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 nossa primeira aplicaรงรฃo WPF.

Como criar seu primeiro aplicativo WPF?

Neste exemplo de WPF, desenvolveremos uma aplicaรงรฃo WPF bรกsica. Portanto, vamos comeรงar a implementaรงรฃo simples seguindo os passos indicados no exemplo de aplicaรงรฃo WPF abaixo.

Passo 1) No Visual Studio, acesse Arquivo > Novo > Projeto

Menu Arquivo do Visual Studio exibindo a opรงรฃo Novo Projeto

Passo 2) Na nova janela do projeto

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

Nova janela de projeto com o modelo de aplicativo WPF selecionado

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

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

O Solution Explorer exibe os arquivos MainWindow.xaml e MainWindow.xaml.cs.

O MainWindow.xaml tem

  1. Uma janela de design
  2. Arquivo XAML

Janela de design MainWindow.xaml e editor XAML no Visual Studio

Na janela XAML, as seguintes tags sรฃo escritas por padrรฃo:

Tags XAML padrรฃo geradas para uma nova janela WPF

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

O arquivo MainWindow.xaml.cs contรฉm o cรณdigo correspondente no arquivo de design XAML:

Arquivo de cรณdigo subjacente MainWindow.xaml.cs para a janela WPF.

Passo 4) Na caixa de ferramentas,

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

Arrastar um textoBox da caixa de ferramentas para a janela de design WPF

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

Editando TextoBox propriedade de texto para o primeiro programa WPF

Passo 6) Clique no botรฃo Iniciar

Botรฃo Iniciar do Visual Studio para executar o aplicativo WPF

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

Janela do aplicativo WPF em execuรงรฃo exibindo o texto "Primeiro programa 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 repleto de recursos. Vocรช pode criar aplicativos muito sofisticados sem precisar programar ou comprar controles. Nรฃo tรฃo rico em recursos
Desenvolvedores de 3rd Os controles de festa estรฃo focados na compatibilidade com o WPF, pois este รฉ o futuro. Existem muitos controles de terceiros que vocรช pode comprar ou obter gratuitamente.
XAML permite criar e editar sua interface grรกfica de usuรกrio (GUI) facilmente. Ele possibilita que o trabalho seja dividido entre um designer (XAML) e um programador (C#, VB.NET, etc.). In Windows Nos formulรกrios, todo o cรณdigo รฉ escrito em um รบnico lugar.
As habilidades em XAML sรฃo diretamente aplicรกveis โ€‹โ€‹a frameworks mais recentes, como WinUI 3, .NET MAUI e Avalonia UI. As habilidades em WinForms aplicam-se principalmente ao formato clรกssico. Windows Desenvolvimento para desktop.
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 รฉ usado para aplicaรงรตes independentes. Windows Aplicaรงรตes de desktop, como ferramentas empresariais de gestรฃo de negรณcios, painรฉis de controle, terminais de negociaรงรฃo e software de design.
  • Windows Formulรกrios e pรกginas WPF podem coexistir no mesmo aplicativo
  • Vocรช pode desenvolver aplicativos com navegaรงรฃo no estilo de pรกgina/janela.

WPF no .NET moderno

Microsoft O WPF tornou-se de cรณdigo aberto em dezembro de 2018 e, desde o .NET Core 3.0 (2019), o framework รฉ distribuรญdo com todas as versรตes modernas do .NET, atรฉ o .NET 10 inclusive. Migrar um aplicativo para o .NET moderno proporciona inicializaรงรฃo mais rรกpida, implantaรงรฃo mais simples por meio da publicaรงรฃo autocontida e acesso aos recursos atuais da linguagem C#, enquanto o modelo de programaรงรฃo do WPF permanece o mesmo.

WPF continua Windows-somente. Se vocรช estรก escolhendo um framework para desktop hoje, esta comparaรงรฃo pode ajudar:

Quadro Melhor Para
WPF Maduro, repleto de recursos Windows aplicativos de desktop com um ecossistema enorme
WindowsUI 3 Novas aplicaรงรตes voltadas para o moderno Windows 11. Aparรชncia e sensaรงรฃo
.NET CORRIGIDO Aplicaรงรตes multiplataforma abrangendo Windows, macOS, Android, e iOS

Como o WPF recebe manutenรงรฃo ativa e estรก profundamente integrado ao software empresarial, aprendรช-lo continua sendo um investimento prรกtico. Depois de se sentir confortรกvel criando esses aplicativos, vale a pena praticar os mais comuns. Perguntas de entrevista sobre WPF para consolidar conceitos como XAML, vinculaรงรฃo de dados e a รกrvore visual.

Perguntas Frequentes

Vocรช precisa de XAML para projetar a interface e C# (ou VB.NET) para a lรณgica do aplicativo. Conhecimentos bรกsicos de programaรงรฃo orientada a objetos e da biblioteca de classes .NET facilitam bastante o aprendizado de WPF.

Nรฃo. O WPF depende do DirectX e Windows APIs, portanto, funciona apenas em WindowsPara desenvolvimento XAML multiplataforma, considere Interface do usuรกrio Avalonia or .NET CORRIGIDO.

Sim. Ferramentas como Copiloto do GitHub ร‰ possรญvel gerar layouts XAML, expressรตes de vinculaรงรฃo e estilos a partir de comentรกrios, o que acelera o aprendizado e reduz a marcaรงรฃo repetitiva para iniciantes.

Vocรช pode integrar ML.NET para aprendizado de mรกquina local ou chamar serviรงos de IA em nuvem, como Azure Integre o OpenAI ao seu cรณdigo C# e, em seguida, exiba os resultados por meio da vinculaรงรฃo de dados padrรฃo do WPF.

Sim. O WPF รฉ de cรณdigo aberto sob a licenรงa MIT, e vocรช pode criar aplicativos gratuitamente com o Visual Studio Community Edition.

Resuma esta postagem com: