Les Layouts - Exercices

3.1 Les Layouts

Exercice 1 : Des briques et des layouts

Le saviez-vous ? la force de ce genre de layouts est qu’ils peuvent s’imbriquer les uns dans les autres : par exemple, vous pouvez mettre des canvas dans des stackpanels, et inversement. Ce n’est pas forcément nécessaire, mais dans certains cas, lorsque l’interface devient complexe, il devient intéressant de tout « ranger » dans des cases. Pour cela, on utiliserait la grid avec ses columns et rows.
image1exo
A l’aide d’une grid, scindez la fenêtre de 450 par 600 en quatre (deux lignes et deux colonnes, de même taille). Dans la partie en haut à gauche, placez un stackpanel avec deux boutons. Dans la partie en haut à droite, réutilisez l’exemple fournie plus haut avec les directions Dans la partie en bas à gauche, définissez un wrappannel avec 6 boutons répartis sur deux lignes. Dans la partie en bas à gauche, amusez vous à reproduire une cible de tir à l’arc (trois couleurs : bleu puis rouge puis jaune) et centrez-la.

Correction

Exercice 2 : Enchaînement dans un StackPanel

Expérimentons un peu avec les marges dans les layouts. Dans une fenêtre de 300 de haut et 600 de large, créez un stackpanel horizontal et placez-y autant de boutons carrés (bord = 50), chacun espacé de 10px avec l’autre et centré.

image2exo

Correction

Exercice 3 : Canva multicolor

Dans un canva, créez un bouton d’une couleur différente dans chaque angle avec une marge de 20 px des bords. Lorsque vous appuyez sur un bouton, il doit faire changer la couleur du bouton suivant (dans le sens des aiguilles d’une montre).

image3exo

Correction XAML
Correction C#

Exercice 4 : Calculatrice

La grid est très puissante : servez-vous en pour faire une calculatrice avec tous les boutons bien ordonnés en ligne et colonne. La photo finish et les events vous sont fournis pour que vous vous concentriez sur la mise en forme.

image4exo

Code C#
Correction XAML

Exercice 5 : Dessin

Dans un canvas, tentez de dessiner, avec tous les contrôles que vous voulez, le cybertruck de Tesla.