Windows Presentation Foundation (WPF), anciennement connu sous le nom de code Avalon, est le nouveau système d’affichage graphique de Microsoft Windows, et devrait être intégré directement dans Windows VISTA. WPF fait partie de WinFX, un nouvel ensemble d’API managées qui seront introduites dans Windows VISTA (et Windows XP) pour remplacer les API Windows actuelles (Win32).
Windows Presentation Foundation vous permettra de développer des applications intuitives au design innovant, et cela de façon très rapide. La première chose à voir dans WPF, concerne ce que vous manipulerez le plus souvent lors de vos développements : les contrôles. De manière générale, les contrôles WPF sont utilisés pour visualiser des données et pour permettre à l’utilisateur d’interagir avec l’application. Comme souvent, ces contrôles possèdent des propriétés, des évènements et des méthodes. Bien sur, la grande nouveauté des contrôles WPF est qu’ils peuvent contenir n’importe quoi : on a donc la possibilité de personnaliser complètement le contenu d’un contrôle WPF. En effet, ce sont des éléments fonctionnels auxquels on applique un style et qu’il est possible de combiner avec d’autres, grâce au système de template. On pourrait donc facilement utiliser un bout de code permettant d’insérer simplement une image dans un bouton.
Afin de bien comprendre comment fonctionnent les contrôles WPF, je vous recommande de regarder l’image extraite des slides de la PDC 2005. Ici, vous avez une description complète de l’architecture des contrôles, dans Windows Presentation Foundation.
Les contrôles
L’affichage, sous WPF, est donc géré par deux threads : le premier s’occupe de créer les éléments primitifs qui vont servir à l’affichage, tandis que le deuxième se charge de les afficher à l’écran. Le premier thread est entièrement managé et le deuxième est natif ! On voit donc que tous les contrôles WPF sont en fait constitués d’autres contrôles. Par exemple, une ListBox n’est qu’un StackPanel accompagné d’un SrollViewer. On peut donc décomposer chaque contrôle WPF sous forme de graphes d’objets, jusqu'à obtenir un ensemble de données qui seront affichées à l’écran. La propriété Content des contrôles WPF remplace la propriété Text des contrôles " classiques
", mais vous permet bien plus. En effet, c’est grâce à cette propriété Content, qui est mappée sur les enfants d’un noeud XAML, que vous allez pouvoir faire "ce que vous voulez" avec votre contrôle : ajouter une image, une vidéo, etc. Vous allez même pouvoir aller plus loin. En effet, si vous étudiez bien cette propriété, vous vous rendrez compte qu’elle est de type object. Ainsi, vous avez la possibilité de lui assigner n’importe quel objet (objet métier, etc..).
De nombreux contrôles sont présents et peuvent être utilisés dans vos applications. Mais de base, ces contrôles ne sont pas forcément très esthétiques et nous allons voir comment les styles nous permettent de changer cela.