TOC

This article has been localized into French by the community.

Une application WPF:

Travailler avec App.xaml

App.xaml est le point de départ des déclarations de votre application. Visual Studio le crée automatiquement pour vous quand vous commencez une nouvelle application WPF, en créant aussi le fichier Code-behind appelé App.xaml.cs. Ils fonctionnent un peu comme une fenêtre, où les deux fichiers sont des classes partielles, travaillant ensemble pour vous permettre de travailler à la fois sur le balisage (XAML) et le code-behind.

App.xaml.cs étend la classe Application, qui est une classe centrale dans une application Windows WPF. Le .NET Framework ira à cette classe pour démarrer les instructions et ensuite démarrer la fenêtre voulue ou la page désirée à partir de là. C'est aussi l'endroit pour souscrire à des événements d'application importants, tels que le démarrage de l'application, les exceptions non gérées... Plus d'info à ce sujet plus tard.

L'une des fonctionnalités les plus utilisées du fichier App.xaml est de définir des ressources globales pouvant être utilisées et accessibles depuis l'ensemble d'une application, par exemple des styles globaux. Cela sera développé en détail plus tard.

Structure de App.xaml

Quand vous créez une nouvelle application, le fichier App.xaml automatiquement généré ressemble à quelque chose comme ça :

<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>

L'élément essentiel à remarquer ici est la propriété StartupUri. C'est, en fait, la partie qui définit quelle fenêtre ou quelle page démarrer quand l'application est lancée. Dans ce cas, MainWindow.xaml sera lancé, mais si vous voulez utiliser une autre fenêtre comme point de départ, vous pouvez tout simplement changer ce paramètre.

Dans certaines situations, vous voudrez plus de contrôle sur comment et quand la première fenêtre est affichée. Dans ce cas, vous pouvez supprimer la propriété StartupUri et sa valeur puis faire vos réglages à partir du Code-Behind. Ce sera bientôt expliqué.

Structure de App.xaml.cs

Le App.xaml.cs correspondant ressemblera à ça pour un nouveau projet :

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

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Vous verrez comment cette classe étend la classe Application, ce qui nous permet de faire nos modifications sur les différents niveaux de l’application. Par exemple, vous pouvez souscrire à l’évènement Startup, dans lequel vous pouvez créer manuellement votre fenêtre de démarrage.

Voici un exemple :

<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>

Notez de quelle façon le StartupUri a été remplacé par l'abonnement à l’évènement Startup (comment s'abonner à un évènement en XAML est expliqué dans un autre chapitre). Dans Code-Behind, vous pouvez utiliser l’évènement comme ceci :

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();
		}
	}
}

Ce qui est cool avec cet exemple, c'est que nous pouvons manipuler la fenêtre de démarrage avant de l’afficher, ce que nous ne pouvons pas faire en utilisant juste la propriété StartupUri. Dans celle-ci, nous changeons son titre, ce qui n’est pas hyper utile, mais nous pouvons aussi souscrire à des évènements ou peut-être afficher un splash screen (écran de chargement). Quand vous avez tous les contrôles, il y a de nombreuses possibilités. Nous en verrons plusieurs, plus en profondeur, dans le prochain article de ce tutoriel.