VI. Améliorations du développement d'applications riches▲
VI-A. WPF 4.0▲
WPF étant désormais la technologie Microsoft de référence pour la création d'interfaces graphiques riches, il était attendu que sa version 4 apporte un lot de nouveautés. Et les nouveautés sont bien là, avec en particulier une attention particulière pour Windows 7.
VI-A-1. Améliorations du designer▲
LMe designer de WPF est désormais plus rapide, et plus stable que la version précédente.
VI-A-2. Support de Windows 7▲
Windows 7 étant désormais disponible, il fallait s'attendre à ce que la version suivante de WPF puisse tirer pleinement parti des nouveautés apportées par cette version de Windows.
Dans ces nouveautés, on peut trouver :
- le support du multitouch : Windows 7 permettant désormais la gestion du multitouch en natif, WPF peut utiliser les API mutlitouch de 7, ainsi que tous les événements qui s'y rapportent ;
- intégration avec le Shell : les Jump List, ainsi que toutes les fonctionnalités de la barre de tâches peuvent être manipulés par WPF. Ces fonctionnalités incluent les contrôles embarqués sous forme de miniatures, les barres de progression et les icônes en juxtaposition.
VI-A-3. De nouveaux contrôles▲
De nouveaux contrôles orientés développement d'applications métiers sont apparus dans WPF 4. Ces contrôles, pour la plupart issus du WPF Toolkit, On trouvera entre autres une grille (DataGrid), et des composants de sélection de dates (DatePicker et Calendar).
De plus, deux téléchargements complémentaires seront disponibles, à savoir le WPF Bag O'Tricks (comprenant les contrôles suivants : AnimatingTilePanel, ColorPicker, InfoTextBox, ListPager, NumericUpDown, Reveal, TransitionsPresenter, TreeMapPanel), et le contrôle de Ruban, qui n'a pas pu être intégré dans le jeu de contrôles livrés avec Visual Studio.
Toujours du point de vue graphique, il est désormais possible, dans une zone de saisie, de customiser la couleur et l'opacité du texte sélectionné (SelectionBrush et SelectionOpacity), ainsi que la couleur du curseur (CaretBrush).
Un contrôle moins « graphique » est inclus, sous la forme d'un correcteur orthographique personnalisé.
VI-A-4. Améliorations du rendu graphique▲
Le moteur de rendu graphique de WPF est un peu le cœur de la technologie, et c'est donc sans surprise que le passage à la version suivante apporte un lot de nouveautés.
- Cached Composition : ce mécanisme permet de mettre en cache tous les éléments graphiques rendus par une application sous forme de bitmap, qui peuvent même être manipulés sans être re-rendus. Chaque élément caché peut être rendu de nouveau si son statut change, ce qui permet une augmentation de performances non négligeable.
- Layout Rounding : lorsqu'un élément graphique est rendu, il peut arriver que le moteur de rendu donne à un élément une position calculée en fraction de pixel. Lors du rendu, un algorithme de diffusion est appliqué pour conserver l'aspect graphique de ces éléments, ce qui peut induire des zones floues, ou des artefacts de rendu. Le Layout Rounding permet de forcer le positionnement des contrôles sur des valeurs de pixel entières, ce qui corrige ces artefacts.
- CleartypeHint : ClearType est une technologie de rendu permettant de simuler des courbes sur des écrans à alignement de couleur fixe. Dans les versions précédentes de WPF, dans certaines conditions, le système désactivait ClearType. Désormais, utiliser RenderOptions.ClearTypeHint=« Enabled » permet de forcer l'activation de ClearType dans tous les cas.
- Easing Functions : les fonctions de Easing permettent de créer des animations plus fluides et réalistes. Ces fonctions sont originaires de Silverlight 3, sont au nombre de 11, et des fonctions supplémentaires peuvent être définies si le besoin s'en fait ressentir.
- Pixel Shader 3 : la version 3 du Pixel Shader augmente encore le jeu d'instructions disponibles, le rendant plus souple (et plus compliqué à maitriser ;) )
VI-A-5. Autres améliorations▲
Le binding a encore été amélioré pour la version 4 de WPF, et un certain nombre de petites améliorations ont été apportées. Entre autres, le parseur de XAML a été réécrit pour tirer parti de la nouvelle dll System.Xaml.dll. De nombreux bugs ont été corrigés, et de nouveaux scénarios de développement ont été rendus possibles par cette nouveauté.
Avec l'apparition des objets dynamiques et de la DLR, il devient désormais possible d'utiliser le binding sur des objets dynamiques,définis à l'exécution grâce aux objets DynamicObject et à l'interface IDynamicMetaObjectProvider.
Il est désormais possible, grâce au Visual State Manager (VSM), d'appliquer simplement des états aux contrôles, dans le sens état visuel. Le Visual State Manager permet en effet de gérer le look & feel en le définissant dans un modèle.
Enfin, de nouveaux modèles de contrôle ont été ajoutés à WPF 4. Ces modèles sont les suivants :
- ItemsContainerPattern : ce pattern permet de trouver et d'accéder à des contrôles virtualisés ;
- VirtualizedItemPattern : ce pattern permet de forcer la création ou l'apparition d'un contrôle virtualisé ;
- SynchronizedInput : ce pattern permet de vérifier si un événement de saisie est dirigé vers le bon élément.