Utiliser Newton avec WPF - Partie 1

Utiliser un moteur de simulation physique avec WPF - Partie 1

Introduction


Cette semaine, je vous propose de découvrir WPF au travers d'un exemple amusant et assez impressionnant. A l'aide d'un moteur de simulation physique, nous allons observer la chute de divers objets sur une série de plateformes. Ce tutorial se base sur l'excellent travail de Chris Cavanagh. Qu'il en soit remercié.



Qu'est-ce que WPF ?

Windows Presentation Foundation (WPF) est une couche d'interface graphique vectorielle entièrement nouvelle. WPF a été conçu pour la plateforme .NET et a été influencé par les technologies modernes d'affichage telles que Flash. Il supporte également les accélérations matérielles. WPF fait partie intégrante du Framework .NET 3.5 et fonctionne aussi bien sous Windows Vista que sous XP.

Premiers pas...

Bien qu'il soit possible de construire une fenêtre WPF entièrement par code, Visual Studio propose autre approche. Il sérialise le contenu de chaque fenêtre sous la forme de tags XML dans un documents XAML (eXtensible Application Markup Language). L'avantage est que votre interface utilisateur est complètement séparée de votre code et peut être confiée à un graphiste pour être embellie, à l'aide d'outils comme Microsoft Expression Blend.

Le point d'entrée de toute application WPF est un document XAML qui contient un seul élément Application. La ligne StartupUri indique le nom du fichier XAML de notre fenêtre de démarrage :



Comme pour tous les autres types d'applications .NET, le code peut être placé dans une classe partielle, référencée par l'attribut x:Class :

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;

namespace NewtonWPF
{
///
/// Interaction logic for App.xaml
///

public partial class App : Application
{
}
}

Une première fenêtre

L'élément Window va nous permettre de préciser les propriétés de notre fenêtre principale.



Nous allons ensuite définir une grille de 3 lignes sur 1 seule colonne. Les deux premières lignes s'adapteront à la taille de leur contenu, tandis que la troisième occupera tout le reste de l'espace disonible :



Nous allons maintenant ajouter un menu déroulant. Le code ci-dessous se place sous la fermeture de l'élément Grid :



Le handler de l'événement Click est défini dans le fichier WindowMain.xaml.cs :

private void mnuFileQuit_Click(object sender, RoutedEventArgs e)
{
this.Close();
}

Nous allons maintenant réaliser une barre d'outils. Cet exemple va nous permettre de découvrir une des grandes forces de WPF : chaque élément peut servir de container à d'autres éléments. Les boutons de notre barre d'outils contiennent tous une forme géométrique et un libellé, le tout aligné à l'aide d'un WrapPanel :



Les dégradés de couleurs sont malheureusement peu faciles à définir en XAML. Pour réaliser le décor d'arrière-plan de la fenêtre, j'ai donc utilisé Blend. La copie d'écran ci-dessous montrent les réglages du dégradé.



A suivre...

Dans cette première partie, nous avons abordé la conception de l'interface utilisateur. Dans les chapitres suivants, nous découvrirons Newton Game Dynamics (http://www.newtondynamics.com), un moteur de simulation physique en temps réel, léger et rapide.

Commentaires