TOC

This article has been localized into Portuguese by the community.

Uma aplicação WPF:

Trabalhando com App.xaml

O App.xaml é declarado o ponto de partida de sua aplicação. O Visual Studio cria ele automaticamente para você quando você inicia uma nova aplicação WPF, incluindo um arquivo Code-behind chamado App.xaml.cs. Ele funciona como uma janela, onde os dois arquivos são classes parciais (partial), trabalhando juntas para permitir que você trabalhe tanto com as tags (XAML) quanto Code-behind.

App.xaml.cs implementa a classe Application, que é uma classe central em uma aplicação Windows WPF. O .NET irá nesta classe para instruções iniciais e então iniciará a janela ou página desejada. Este é também onde eventos importantes da aplicação são assinados, como application start, unhandled exceptions entre outros. Veremos isso em detalhes mais tarde.

Uma das características comumente mais utilizada do arquivo App.xaml é de definir recursos que podem ser usados e acessados por toda a aplicação, por exemplo, estilos globais. Isso será discutido com maiores detalhes mais tarde.

Estrutura App.xaml

Quando criamos uma nova aplicação, o App.xaml que é gerado automaticamente se parecerá com este:

<Application x:Class="WpfTutorialSamples.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>

    </Application.Resources>
</Application>

A principal coisa que você irá notar aqui é a propriedade StartupUri. Esta é a parte que atualmente instrui qual janela ou página começará quando a aplicação for iniciada. Neste caso, MainWindow.xaml será iniciada, mas se você quiser usar outra janela como ponto de partida, você pode simplesmente alterar.

Em algumas situações, você vai querer mais controle sobre como e quando a primeira janela será exibida. Neste caso, ao invés disso você pode remover o valor e a propriedade StartupUi e então fazer tudo isso no Code-behind. Isso será demonstrado abaixo:

Estrutura App.xaml.cs

Em um novo projeto a estrutura do App.xaml.cs normalmente se parece com essa:

using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Você verá como estender a classe Application, nos permitindo fazer coisas no nível da aplicação. Por exemplo, você pode assinar o evento de Startup, onde você pode manualmente criar sua janela inicial.

Aqui está um exemplo:

<Application x:Class="WpfTutorialSamples.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
			 Startup="Application_Startup">
    <Application.Resources></Application.Resources>
</Application>

Note como o StartupUri foi substituído por uma assinatura do evento Startup (assinar um evento através do XAML será explicado em outro capítulo). No Code-behind, você pode usar o evento assim:

using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

		private void Application_Startup(object sender, StartupEventArgs e)
		{
			// Create the startup window
			MainWindow wnd = new MainWindow();
			// Do stuff here, e.g. to the window
			wnd.Title = "Something else";
			// Show the window
			wnd.Show();
		}
	}
}

O legal neste exemplo, comparado ao uso da propriedade StartupUri, é que nós manipularemos a janela incial antes de mostrá-la. Neste exemplo, nós mudamos o titulo da janela inicial, algo que não é útil, mas você poderia fazer outras coisas como, por exemplo, assinar eventos ou exibir uma splash screen no lugar, talvez. Nós iremos examiná-lo mais profundamente nos próximos artigos deste tutorial.