Toujours en direct du TechEd, voici le résumé de la conférence de Ian Griffits: "What's New In Windows Presentation Foundation (WPF) 3.5?"
3D
UIElement3D
Permet de traiter la saisie en 3D de manière plus simple.
En effet, dans la V3.0 du WPF on ne pouvait pas gérer d'événements sur les objets 3D eux-mêmes.
On utilise toujours des ModelVisual3D mais ils n'ont pas d'événements. On peut utiliser ModelUIElement3D est pratiquement comme ModelVisual3D, mais il génère des événements.
Viewport2DVisual3D
Permet de mapper des contrôles sur des formes 3D. Dans une démo: on voit des TextBox et Button mappés sur un cône en restant fonctionnelles.
En fait, on avait déjà ça dans la bibliothèque 3DTools de Microsoft.
On définit sa Geometry, puis il suffit d'ajouter les contrôles à mapper en tant que contenu de l'élément Viewport2DVisual3D (astuce: il faut mieux donner la taille du Content en passant une Width).
XBAPs
On peut les faire tourner sous Firefox. Ce n'était pas supporté par Microsoft avant.
On peut en outre gérer les cookies au sien du XBAP.
Data Binding
- Support pour IDataErrorInfo pour étendre le système de validation. On implémente IDataErrorInfo sur la DataSource elle-même. Cela permet de prendre en charge la validation dépendant de plusieurs propriétés, contrairement au système de validation de la V3.0.
- Debugging: c'est plus facile car on n'obtenait pas d'Exception en cas de problème. On peut en outre modifier le niveau de warning seulement pour un élément (avant on ne pouvait le faire que pour toute l'application).
- Intégration avec l'historique de navigation.
- Améliorations pour LINQ: XLinq a été intégré à WPF pour permettre une syntaxe sous forme de "Path" au lieu d'utiliser un "XPath".
Add-ins
Modèle d'add-ins du CLR. Gère:
- la sécurité - le host et le composant tournent dans des AppDomains séparés;
- la gestion des versions (et notamment le changement d'API sur l'application hébergeant le composant).
Seul problème: un AddIn possède un arbre visuel différent de celui du parent. Ce qui implique par exemple que le Background du conteneur n'est pas répercuté sur le composant.
Texte et Documents
- Extension du RichTextBox: on peut héberger des contrôles dans un RichTextBox. Il suffit de rajouter un attribut IsDocumentEnabled sur les contrôles pour qu'ils ne soient plus grisées, contrairement à ce que l'on avait dans la V3.0.
- Annotations: on peut maintenant récupérer l'emplacement d'une annotation (ce qui permet par exemple d'afficher à l'utilisateur le texte correspondant à l'une de ses annotations, donc de prendre en charge la navigation dans les annotations).
Performance
- Moins de CPU
- Les animations sont moins saccadées
- La transparence sur les fenêtres bénéficie d'une accélération graphique
- Les données XML DataBindées sont mises en cache
Comments