WPF é uma ferramenta do Windows para fazer uma interface com o usuário final no Windows. Mas atenção, só funciona no Windows, não funciona no linux nem mac.
Em WPF temos duas linguagens que funcionam em conjunto:
C#: linguagem de programação orientada a objetos que define o funcionamento do programa.XAML: Linguagem de marcação com o padrão XML que define a parte visual do programa.| WPF | Funcionalidade | Tipo de Linguagem | Paradigma |
|---|---|---|---|
C# |
define o funcionamento do programa | linguagem de programação | Orientada a objetos |
XAML |
define a parte visual do programa | Linguagem de marcação | padrão XML |
Vamos fazer um programa minimalista para aprender na prática.
Usando a IDE Visual Studio 2022, crie um projeto usando o template "WPF App (.NET Framework)" em C#.
Dentro da janela de soluções teremos dois arquivos de interesse com um código inicial:
<Window x:Class="WpfAppUnip01.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfAppUnip01"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
</Grid>
</Window>
namespace WpfAppUnip01 {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
}
}
Para criar um elemento devemos:
XAMLXAMLC#C# com o botão do XAML através do identificadorVamos fazer passo a passo.
XAML Dentro da tag Grid crie um elemento de Button com os atributos
Name="botao": Define o identificador do botão, para ser ligado ao objeto criado em C#Content="Aperte": Define o texto escrito dentro do botãoHorizontalAlignment="Center" e VerticalAlignment="Center": Centraliza o alinhamento do botãoClick="OnClickAperte": Define a função que ocorrerá quando o botão for clicado.Em resumo teremos a seguinte tag no lugar da tag Grid:
<Grid>
<Button x:Name="botao" Content="Aperte" HorizontalAlignment="Center" VerticalAlignment="Center" Click="OnClickAperte"/>
</Grid>
C# Agora vamos definir o funcionamento do botão no C#
Button como atributo da classe MainWindowXAML. Use o comando button = (Button)FindName("botao");private void OnClickAperte(object sender, RoutedEventArgs e), este deve ter o mesmo nome que foi colocado no atributo Click do botão no XAMLVeja abaixo o código com os 3 comandos:
using System.Windows;
using System.Windows.Controls;
namespace WpfAppUnip01 {
public partial class MainWindow : Window {
// Primeiro comando:
// Cria uma variavel do tipo Button
Button button;
public MainWindow() {
InitializeComponent();
// Segundo comando:
// Faz uma referencia deste Button para o Button do XAML
button = (Button)FindName("botao");
}
// Terceiro comando:
// Cria um metodo com a assinatura private void (object sender, RoutedEventArgs e)
// e mesmo nome colocado no atributo Click do XAML
private void OnClickAperte(object sender, RoutedEventArgs e) {
MessageBox.Show("Botao pressionado");
}
}
}
Dica: Para escolher a dimensão inicial da tela mude os valores dos atributos Height e Width da tag Window
Dica: Para fechar a janela use o comando this.Close()