Introduction à Windows Presentation Fundation
Concepts
Séparation du code
Les 2 parties du code séparées sont :
- Code métier en C# ou VB .NET pour les actions bouton, les modèles de données etc.
- Code vue en XAML pour les fenêtres, composants, effets etc.
XAML (eXtensible Application Markup Language)

Il est basé sur le XML (Language déclaratif) et permet la création d’UI sans développement. Les avantages de ce language sont : rapidité, simplicité et maintenance. Les performances d’UI sont identiques à une application traditionnelle car l'application XAML est compilée de façon classique.
Binding
On peut manipuler plusieurs types de données :
- Objet de données : c'est un objet propre à l’application qu'on appelle « DependencyObject ». C'est l'équivalent des JavaBean.
- XML (LINQ) qui permet l'association avec du XML grâce à LINQ (Language Integrated Query , requêtage XML natif).
3 types de binding sont disponibles :
- Oneway : read only depuis les données.
- Twoway : lecture depuis les données et écriture depuis le client.
- Onetime : mise à jour 1 seule fois au démarrage et après plus rien.
Support graphique

WPF repose directement sur DirectX ce qui permet :
- Performance : le GPU est directement utilisé ce qui allège le CPU.
- Support vectoriel : UI avec plus de précision.
- Intéraction 2D/3D : la 2D superposable sur des surfaces 3D.
- WIC (Windows Imaging Component) : pour le support natif du traitement d'image (codecs)
Intéropératibilité
WPF a été conçu pour être compatible au maximum. C'est pourquoi :
- Win32/WPF : on peut intégrér du code win32 dans une application WPF et inversement.
- WinForms/WPF : on peut intégrer des composants Windows Forms dans une application WPF (ElementHost)
- GED (Gestion Electronique des documents) avec OPC (Open Packaging Convention) qui est le standard XML des fichiers Office 2007 et le XPS natif qui un concurrent de PDF pour la description, archivage, impression de document.
- WIC (Windows Imaging Component) : pour le support natif du traitement d'image (codecs)
Customisation d'UI
WPF est très utilisé pour la customisation d'interface graphique. En effet, WPF propose les principes suivants :
- Style : on peut gérer les styles visuels à la façon CSS (dans un fichier externalisé).
- Composant = hierarchie d'autres composants (par exemple, une liste est un champs de texte avec un bouton pour dérouler la liste etc)
- Effets visuels : transparence, réflexion, flou, fenêtre arrondie (gérés par le GPU à partir de .NET Framework 3.5 SP1).