Exercício – Escrever um aplicativo WPF
O WPF (Windows Presentation Foundation) no Visual Studio fornece aos desenvolvedores uma interface de API para a criação de aplicativos para computadores desktop, bloco de notas e tablet. O WPF se baseia no avançado sistema de elementos gráficos DirectX e fornece muitos excelentes recursos e efeitos de interface do usuário com pouco esforço de programação.
Nesta unidade, vamos:
- Usar o Visual Studio para criar um projeto WPF.
- Adicionar elementos de interface do usuário e de código ao projeto para criar uma variação divertida de um programa "Olá, Mundo". O texto "Olá!" e a borda mudam de cor aleatoriamente sempre que você seleciona o botão Diga olá.
- Aprender a definir propriedades e criar eventos.
Observação
Estamos considerando que você já tenha configurado seu computador com o Windows e o Visual Studio, conforme descrito no módulo de aprendizagem Introdução ao desenvolvimento para Windows 10.
Tutorial do "Diga olá" do WPF
Criar o projeto
Abra o Visual Studio e selecione Arquivo>Novo>Projeto no menu. Selecione C# como a linguagem do projeto. Em seguida, selecione o tipo de projeto Aplicativo WPF e, no campo Nome, insira um nome amigável, como Diga olá. Selecione Avançar quando terminar.
Escolha sua versão do .NET e selecione Criar.
Quando o projeto é aberto, é importante verificar se os painéis Gerenciador de Soluções e Propriedades foram abertos. Eles estão localizados, por padrão, no lado direito da janela do Visual Studio. Se eles não estiverem visíveis, abra o menu Exibição e selecione os dois.
No Gerenciador de Soluções, verifique se são exibidos os nomes dos dois arquivos com os quais estamos trabalhando: MainWindow.xaml e o arquivo code-behind dele, MainWindows.xaml.cs. Selecione MainWindow.xaml para abri-lo.
Projetar a interface do usuário
Se a Caixa de Ferramentas não estiver aberta, selecione o menu Exibir e Caixa de Ferramentas. Na Caixa de ferramentas, selecione Controles comuns do WPF.
Arraste um Botão para a parte inferior do layout do designer. Em seguida, arraste uma TextBox para a parte superior do layout e arraste seus cantos um pouco para fora para que ela fique semelhante a esta:
Observação
Observe como as entradas de botão e de TextBox são adicionadas a <Grid> na definição XAML exibida abaixo do layout.
Em seguida, queremos atualizar o texto que aparece na barra de título da janela. Selecione a Janela no layout do designer para que suas propriedades fiquem visíveis no painel Propriedades e, em seguida, altere o Título para Diga olá.
Agora queremos definir algumas propriedades nos novos elementos de interface do usuário. Selecione o botão de modo que suas propriedades apareçam no painel Propriedades. Altere o Nome para algo simples, como SayHelloButton e altere o Conteúdo nas propriedades Comum para Diga olá.
É necessário anexar um evento ao botão. Selecione o próprio botão, embora isso só funcione quando o layout de designer está no estado necessário. Uma maneira mais segura de inserir um evento é abrir os eventos disponíveis para esse item da interface do usuário. Para fazer isso, selecione o ícone de relâmpago mostrado aqui no painel Propriedades e, em seguida, selecione a entrada para o evento Clicar. Isso cria automaticamente o evento nomeado SayHelloButton_Click, adiciona a entrada de código apropriada no arquivo MainWindow.xaml.cs e abre o arquivo.
Ainda não vamos inserir nenhum código, portanto, selecione MainWindow.xaml na exibição principal. Por enquanto, continuamos trabalhando na interface do usuário.
Selecione a caixa de texto que você criou no designer para exibir suas propriedades. Faremos algumas alterações nas propriedades da caixa de texto. Se os eventos estiverem sendo exibidos no painel Propriedades, selecione o ícone de chave inglesa ao lado do nome para voltar às propriedades nomeadas.
Altere a entrada Nome para textBox1 e, em seguida, nas propriedades de Layout, altere a Largura e a Altura para 360 e 80, respectivamente.
Recolha a seção Layout.
Na lista de tamanhos de Texto, altere o tamanho do ponto para 36, que fica interessante e visível.
A guia de fonte, rotulada com um A, é aberta por padrão na seção Texto. Selecione o ícone de parágrafo e altere o alinhamento para Centro.
Recolha a seção Texto e expanda Aparência. Selecione a seta para baixo na parte inferior da lista de propriedades de aparência para exibir a lista completa. Altere para 1 a espessura das bordas esquerda e superior e para 8 a das bordas direita e inferior. Agora a caixa tem um efeito de sombra.
Recolha Aparência e expanda Comum. Insira o texto da caixa de texto: algo amigável, como Olá!.
Você está quase terminando de ajustar os elementos de interface do usuário para seu aplicativo. A entrada <Grade> do arquivo XAML deve ter a seguinte aparência:
Observação
Edite o XAML diretamente, alterando valores numéricos ou até mesmo adicionando elementos inteiros de interface do usuário. Não faremos isso neste tutorial.
Escrever o code-behind
Agora podemos passar da interface do usuário para o código do aplicativo. É hora de reabrir o arquivo MainWindow.xaml.cs. Selecione o arquivo acima da exibição principal ou no Gerenciador de Soluções. A classe MainWindow deve ter esta aparência:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void SayHelloButton_Click(object sender, RoutedEventArgs e) { } }
Vamos garantir que todas as instruções using necessárias estejam presentes. Verifique se os seguintes itens estão presentes, caso contrário, adicione-os. Após terminar de editar o arquivo, você também pode remover todas as instruções using desnecessárias que o Visual Studio incluiu quando criou o projeto. (Os namespaces não usados aparecem em cinza).
using System; using System.Windows; using System.Windows.Media;
O aplicativo renderiza o texto "Olá!" em uma cor aleatória sempre que o botão é selecionado. Portanto, precisamos adicionar um objeto Random de nível de classe e o método GetRandomBytes que preenche aleatoriamente os valores que usamos como configurações de RGB. Copie e cole este código ou digite-o, para que a classe MainWindow fique assim:
public partial class MainWindow : Window { private Random rand; public MainWindow() { InitializeComponent(); rand = new Random(); } private byte[] GetRandomBytes(int n) { // Fill an array of bytes of length "n" with random numbers. var randomBytes = new byte[n]; rand.NextBytes(randomBytes); return randomBytes; } private void SayHelloButton_Click(object sender, RoutedEventArgs e) { } }
Por fim, precisamos chamar GetRandomBytes do evento de clique no botão, criar uma cor aleatória da matriz de bytes retornada e, em seguida, alterar as propriedades da caixa de texto para essa cor. O método SayHelloButton_Click concluído deverá ter esta aparência:
private void SayHelloButton_Click(object sender, RoutedEventArgs e) { byte[] rgb = GetRandomBytes(3); // Create a solid color brush using the three random numbers. var randomColorBrush = new SolidColorBrush(Color.FromArgb(255, rgb[0], rgb[1], rgb[2])); // Set both the text color and the text box border to the random color. textBox1.BorderBrush = randomColorBrush; textBox1.Foreground = randomColorBrush; }
Dedique alguns segundos para verificar o código. Se algo estiver sublinhado em vermelho, isso indicará que há algum erro. Pode ser uma palavra com ortografia incorreta ou uma parte do código em um local errado.
Executar
Vamos compilar e executar o programa.
No Visual Studio, no menu Depurar, selecione Iniciar sem depuração (ou Iniciar depuração, apesar de que não faremos nenhuma depuração neste tutorial), ou apenas selecione a tecla F5. Se você tiver inserido tudo corretamente, verá um aplicativo em execução semelhante a este:
Selecione o botão Diga olá repetidamente para ver o texto Olá! e a borda mudarem para cores aleatórias.
Se isso for o que você vê, parabéns! Você concluiu este tutorial. Caso contrário, reexamine cuidadosamente as configurações de propriedades do código e da interface do usuário para encontrar algo que tenha passado despercebido.