TOC

This article has been localized into French by the community.

Une application WPF:

La fenêtre (Window)

Lors de la création d'une application WPF, la première chose que vous verrez est la classe Window. Elle sert de base pour une fenêtre et fournit une bordure, une barre de titre, et les boutons de maximisation, minimisation et fermeture standards. Une fenêtre WPF est la combinaison d'un fichier XAML (.xaml), dans lequel l'élément <Window> est la racine, et un fichier de CodeBehind (littéralement "code derrière") (.cs). Si vous utilisez Visual Studio (Express) et que vous créez une nouvelle application WPF, une fenêtre par défaut sera créée pour vous, qui ressemblera à quelque chose comme ça :

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>

    </Grid>
</Window>

L'attribut x:class indique au fichier XAML quelle classe utiliser, dans ce cas-ci Window1, que Visual Studio a également créé pour nous. Vous la trouverez dans l'arbre de projet dans VS, en tant que nœud enfant du fichier XAML. Par défaut, elle ressemble à ceci :

using System;
using System.Windows;
using System.Windows.Controls;
//…more using statements

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}

Comme vous pouvez le voir, la classe Window1 est définie comme étant partielle (partial), car elle est combinée avec votre fichier XAML à l'exécution pour vous donner la fenêtre complète. C'est en fait ce que fait l'appel à InitializeComponent(), c'est pourquoi cela est nécessaire pour avoir une fenêtre complétement fonctionnelle.

Si nous retournons voir le fichier XAML, vous remarquerez plusieurs autres attributs intéressants dans l'élément Window, comme Title, qui définit le titre de la fenêtre (affiché dans la barre de titre), ainsi que la largeur (Width) et la hauteur (Height) initiales. Il y a également deux définitions d'espaces de noms, dont nous parlerons dans les chapitres portant sur XAML.

Vous remarquerez aussi que Visual Studio nous a créé un contrôle Grid dans le contrôle Window. Le contrôle "Grid" est un panneau WPF, et bien qu'il puisse s'agir de n'importe quel panneau ou contrôle, la Window ne peut avoir qu'UN seul contrôle enfant ; donc un panneau (Panel), qui lui-même peut contenir plusieurs contrôles enfants, est généralement un bon choix. Plus loin dans ce tutoriel, nous nous intéresserons de bien plus près aux différents types de panneaux que vous pouvez utiliser, car ils sont très importants en WPF.

Propriétés importantes de l'élément Window

La classe WPF Window possède un tas d'attributs intéressants que vous pouvez régler pour contrôler l'apparence et le comportement de la fenêtre de votre application. Ci-dessous se trouve une courte liste des plus intéressants :

Icon - Permet de définir l'icône de l'application, qui est généralement présente dans le coin en haut à gauche, juste avant le titre de la fenêtre.

ResizeMode - Ceci contrôle si et comment l'utilisateur peut redimensionner votre fenêtre. La valeur par défaut est CanResize, qui permet à l'utilisateur de redimensionner la fenêtre comme n'importe quelle autre fenêtre, soit par l'utilisation des boutons de maximisation/minimisation, soit en tirant un bord de la fenêtre. CanMinimize autorisera l'utilisateur à minimiser la fenêtre, mais pas à la maximiser ou modifier ses dimensions. NoResize est la plus stricte, où les boutons de maximisation et minimisation sont retirés et la fenêtre ne peut pas être redimensionnée.

ShowInTaskbar - La valeur par défaut est true (vrai), mais si vous la mettez à false (faux), votre fenêtre ne sera pas affichée dans la barre des tâches de Windows. Utile pour les fenêtres non primaires ou pour les applications qui doivent être minimisées dans la zone de notifications.

SizeToContent - Décide si la fenêtre doit se redimensionner automatiquement pour s'adapter à son contenu. La valeur par défaut est Manual, ce qui signifie que la fenêtre ne se redimensionne pas toute seule. Les autres options sont Width (largeur), Height (hauteur) et WidthAndHeight (largeur et hauteur), et chacune d'entre elles redimensionnera automatiquement la fenêtre horizontalement, verticalement, ou les deux à la fois.

Topmost - La valeur par défaut est false, mais si mise à true, votre fenêtre restera affichée par-dessus les autres fenêtres, sauf quand elle sera minimisée. Seulement utile pour certaines situations.

WindowStartupLocation - Contrôle la position initiale de votre fenêtre. La valeur par défaut est Manual, ce qui signifie que la fenêtre sera initialement positionnée selon les propriétés Top (haut) et Left (gauche) de votre fenêtre. Les autres options sont CenterOwner, ce qui positionnera la fenêtre au centre de sa fenêtre parente, et CenterScreen, qui positionnera la fenêtre au centre de l'écran.

WindowState - Contrôle l'état initial de la fenêtre. Peut prendre les valeurs Normal, Maximized (maximisé) ou Minimized (minimisé). La valeur par défaut est Normal, ce qui est ce que vous devriez utiliser à moins que vous ne vouliez que votre fenêtre démarre maximisée ou minimisée.

Il existe cependant beaucoup d'autres attributs, alors recherchez-les par vous-même puis passez au chapitre suivant.