Tutoriel WPF pour débutants
⚡ Résumé intelligent
WPF (Windows Présentation Foundation) est Microsoftle cadre de [nom de l'entreprise] pour construire des ressources riches Windows Applications de bureau. Les débutants apprennent comment XAML, la liaison de données et l'accélération graphique matérielle se combinent pour créer des interfaces utilisateur évolutives et visuellement riches avec moins de code.

Qu'est-ce que WPF ?
WPF est un cadre pour construire Windows Applications permettant aux développeurs de créer des interfaces utilisateur riches avec des animations 3D et des couleurs éclatantes, tout en réduisant la complexité du code. Il s'agit d'un moteur de rendu vectoriel exploitant l'accélération matérielle des cartes graphiques modernes, ce qui rend l'interface utilisateur plus rapide et hautement évolutive. WPF signifie Windows Présentation Foundation.
WPF peut être considéré comme une évolution de WinForms. Il fournit un système d'affichage graphique facile à utiliser pour Windows et offre une séparation claire entre l'interface utilisateur et la logique métier.
Les applications WPF sont généralement déployées en tant que programmes de bureau autonomes, et elles peuvent également être hébergées en tant qu'objets intégrés dans d'autres applications.
Pourquoi WPF ?
Il existe de nombreuses raisons d'utiliser la plateforme WPF. En voici quelques-unes des plus importantes :
- Une plateforme idéale à utiliser si vous devez gérer différents types de médias
- WPF vous permet de créer une interface utilisateur personnalisée. Il vous est également utile lorsque vous devez charger une partie de l'interface ou lier des données XML.
- Il vous permet de profiter de la grande bibliothèque de classes .NET car elle est construite sur .NET
- Indépendance de la résolution, ce qui permet aux applications développées avec WPF de fonctionner sur de petits écrans de tablettes ou sur un écran de 20 pouces.
- WPF s'appuie sur DirectX au lieu de WinAPI. Il utilise le système graphique de l'ordinateur client, offrant ainsi une puissance de rendu graphique supérieure.
- Prend en charge un modèle de document de flux permettant une mise en page de qualité « PAO »
- L'apparence et le comportement sont faiblement couplés. Cela permet aux concepteurs et aux développeurs de travailler sur deux modèles distincts.
- Dans le framework WPF, vous pouvez concevoir graphiquement des outils à l'aide de simples documents XML au lieu d'analyser du code.
- Vous permet d'utiliser l'accélération matérielle pour dessiner l'interface graphique, pour de meilleures performances
Voyons maintenant comment ce cadre a évolué au fil du temps.
Histoire de WPF
Windows 1.0 était le premier environnement GUI de MicrosoftIl fonctionnait comme une couche supplémentaire au-dessus de DOS, s'appuyant sur les systèmes GDI et USER pour les graphismes et l'interface utilisateur.
DirectX a été introduit en 1995 comme un système graphique haute performance destiné aux jeux et autres environnements graphiques. Au fil des années, de nombreuses versions ont été publiées, et DirectX 9 a fourni une bibliothèque utilisable avec du code .NET managé.
| Version WPF | Année de sortie | .Net | Version Visual Studio | Fonctionnalité |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | N/D | Première version. Cependant, le développement WPF peut être effectué avec VS 2005. |
| 3.5 | 2007 | 3.5 | contre 2008 | Modifications et améliorations de : Modèle d'application, liaison, contrôles, documents, annotations et éléments d'interface utilisateur 3D. |
| 3.5 SP1 | 2008 | 3.5 SP1 | N/D | Prise en charge native de l'écran de démarrage. Nouveau contrôle du navigateur Web, prise en charge du pixel shader DirectX. |
| 4.0 | 2010 | 4.0 | contre 2010 | Nouvelles commandes : calendrier, grille de données, sélecteur de date. Prise en charge du multitouch et de la manipulation. |
| 4.5 | 2012 | 4.5 | contre 2012 | Démarrage plus rapide, performances améliorées lors de l'affichage de grands ensembles de données. Nouveau contrôle Ribbon et interface INotifyDataErrorInfo pour la validation des données. |
| 4.5.1 | 2013 | 4.5.1 | contre 2013 | Améliorations mineures des performances et de la fiabilité. |
| 4.5.2 | 2014 | 4.5.2 | NA | Pas de changement majeur |
| 4.6 | 2015 | 4.6 | contre 2015 | Support de fenêtre enfant transparent Améliorations HDPI et Touch |
| 4.8 | 2019 | 4.8 | contre 2019 | Dernière version majeure du framework .NET, avec des correctifs pour les écrans haute résolution et des améliorations d'accessibilité. |
| .NET Core 3.0 et versions ultérieures | 2019-présent | .NET Core 3.0 vers .NET 10 | CONTRE 2019/2022 | WPF devient open source et est fourni avec les versions modernes de .NET (les applications restent Windows-seulement). |
WPF n'est plus versionné séparément de .NET. Depuis 2019, il est distribué en tant que composant open source de la plateforme .NET moderne, et la version actuelle est incluse dans .NET 10, sorti en novembre 2025 en tant que version à support à long terme (LTS).
Fonctionnalités de WPF
Le diagramme ci-dessous regroupe les principales fonctionnalités de WPF, détaillées ci-après.

- Documents et impression
- Sécurité, accessibilité et localisation
- Offre une interopérabilité avec Windows Champs de formulaires
- Direct3D est utilisé dans les applications graphiques où les performances sont importantes
- Utilise le matériel de la carte vidéo pour le rendu
- Les graphiques vectoriels vous permettent de redimensionner votre application sans perte de qualité.
- WPF prend en charge un système de pixels logiques à virgule flottante et une couleur ARGB 32 bits.
- Redéfinir les styles et les modèles de contrôle
- Création de polices internationales à partir de polices composites
- Le rendu de texte WPF tire parti de la technologie ClearType
- Vous permet d'utiliser la technique de mise en cache du texte pré-rendu dans la mémoire vidéo
- Approche fondée sur les ressources pour chaque contrôle
- Les minuteurs de présentation sont initialisés et gérés par WPF
- La relation entre vidéo et animation est également prise en charge
- En WPF, un style est un ensemble de propriétés qui doivent être appliquées au contenu utilisé pour le rendu visuel.
- Les modèles WPF vous permettent de modifier l'interface utilisateur de votre document.
- Les commandes sont plus abstract et une version faiblement couplée des événements
- La prise en charge des commandes par WPF réduit la quantité de code que nous devons écrire
Suivant dans ce WPF Tutoriel C#Nous allons découvrir les principaux types et l'infrastructure de WPF.
Types et infrastructures de base WPF
Les classes dans WPF sont divisées en quatre types différents :
- Élément UIE
- Élément de cadre
- Élément de contenu
- FrameworkContentElement
Ces classes sont appelées classes d'éléments de base. Elles constituent le fondement d'un modèle de composition des interfaces utilisateur.
Les interfaces utilisateur WPF sont composées d'éléments organisés en une hiérarchie arborescente appelée arbre d'éléments. Cet arbre d'éléments offre une méthode intuitive pour concevoir des interfaces utilisateur et constitue la structure sous-jacente à de puissants services d'interface.
XAML
Le langage de balisage d'application extensible, appelé « XAML » (prononcé « zammel »), est une méthode déclarative pour définir des interfaces utilisateur.
Voici la définition XAML d’un bouton simple :
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Avantages de l'utilisation du langage XAML :
- XAML sépare l'apparence du front-end de la logique du back-end
- XAML est la méthode la plus simple pour représenter les interfaces utilisateur
- XAML fonctionne efficacement avec les outils de conception
Contrôles
Le framework WPF prend en charge de nombreux contrôles utiles, tels que :
- Modification des contrôles comme le texteBox, VérifierBox, Bouton radio
- Contrôles de liste tels que ListBox, Liste, Arbre
- Informations utilisateur telles que Label, WPF ProgressBar, ToolTip
- Actions telles que Menu, Bouton et Barre d'outils
- Apparences telles que Border, WPF Image et Viewbox
- boîtes de dialogue courantes telles que OpenFileDialog et PrintDialog
- Les conteneurs tels que TabControl, ScrollBar et GroupBox
- Des mises en page comme DockPanel, StackPanel et Grid
- Navigation telle que cadre et lien hypertexte
L'apparence des contrôles peut être personnalisée avec des styles et des modèles sans programmation. Vous pouvez également créer un contrôle personnalisé en dérivant une nouvelle classe à partir d'une classe de base appropriée.
lustrée
WPF fournit une fonctionnalité permettant de personnaliser l'apparence de votre application. Il vous permet de définir des objets et des valeurs pour des éléments tels que les polices, les arrière-plans, etc.
La fonction de styles vous permet de standardiser un look spécifique pour l'ensemble du produit. Il permet de remplacer l'apparence par défaut tout en conservant son comportement par défaut.
Un modèle de données permet de contrôler l'affichage par défaut des données liées. Grâce aux thèmes, il est facile d'appliquer les styles visuels du système d'exploitation.
Disposition et panneaux
La mise en page vous aide à positionner et dimensionner correctement les contrôles. Elle fait partie du processus de création de la présentation destinée à l'utilisateur. Le framework WPF simplifie ce processus et offre une meilleure adaptabilité de l'apparence de l'interface utilisateur.
L'infrastructure de mise en page est proposée par cinq classes principales : 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid et 5) Canvas
Les éléments graphiques
WPF offre un système graphique amélioré :
- WPF utilise des unités indépendantes du périphérique, ce qui permet une résolution et une indépendance vis-à-vis du périphérique. Chaque pixel indépendant du périphérique s'adapte automatiquement à la résolution (points par pouce) du système.
- WPF utilise double au lieu de float et prend en charge une plus large gamme de couleurs
- Le moteur graphique WPF est conçu de telle manière qu'il peut tirer parti du matériel graphique lorsqu'il est disponible
Documents et impression
Le framework WPF propose trois types de documents :
- Documents fixes : Ce type de document prend en charge WYSIWPrésentation de YG.
- Documents de flux : Vous permet d'ajuster et de redistribuer le contenu en fonction de variables d'exécution telles que la taille de la fenêtre et la résolution de l'appareil.
- Documents XPS : Représentation paginée de papier électronique au format XML. XPS est un format de document ouvert et normalisé.
WPF permet un meilleur contrôle du système d'impression, notamment de l'impression à distance et des files d'attente. De plus, les documents XPS peuvent être imprimés directement sans conversion préalable.
Maintenant que les éléments de base sont posés, voyons comment ces pièces s'assemblent à l'intérieur.
WPF Architecture
WPF fait partie du framework .NET. Il contient du code managé et non managé. Les principaux composants de l'architecture WPF sont expliqués dans la figure ci-dessous :
Composants de l'architecture WPF
- PrésentationCadre: Vous aide à créer des éléments de niveau supérieur tels que des contrôles, des styles, une mise en page, des fenêtres, etc.
- PrésentationCoreIl contient des types de base tels que UIElement et Visual, à partir desquels tous les contrôles et formes de PresentationFramework.dll sont dérivés.
- CLR: Il rend le processus de développement productif en offrant des fonctionnalités telles que gestion de la mémoire, gestion des erreurs, etc.
- Milcore : Milcore fait partie du code non géré qui offre une intégration étroite avec DirectX.
- DirectX: Il s'agit de l'API de bas niveau qui assure le rendu graphique de WPF. DirectX interagit avec les pilotes et affiche le contenu.
- Utilisateur32 : Il s'agit d'une API essentielle largement utilisée par de nombreux programmes. Elle gère la mémoire et la séparation des processus. User32 vous aide à déterminer quel élément sera placé où à l'écran.
- Kernel: L'entrée provient d'un signal sur un pilote de périphérique en mode noyau et est acheminée vers le processus approprié en se connectant avec le Windows noyau et User32.
Liaison de données WPF
La liaison de données est l'un des concepts les plus puissants de WPF. Au lieu d'écrire du code qui copie manuellement les valeurs entre les contrôles et les objets, vous déclarez une connexion en XAML, et WPF synchronise automatiquement les deux côtés. Par exemple :
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF prend en charge quatre modes de liaison :
- Sens Unique: Le contrôle se met à jour lorsque les données sources changent.
- Bidirectionnel : Les modifications circulent dans les deux sens entre le contrôle et la source.
- Une seule fois : Le contrôle ne lit la valeur source qu'une seule fois, au moment du chargement.
- OneWayToSource : La commande transmet sa valeur à la source, jamais l'inverse.
La liaison de données est également le moteur du modèle MVVM (Model-View-ViewModel), l'architecture la plus courante pour les applications WPF professionnelles, car elle permet à la vue de rester en XAML tandis que la logique réside dans des classes C# testables.
Astuce : Implémentez l'interface INotifyPropertyChanged dans vos classes de données. Sans elle, l'interface utilisateur ne se mettra pas à jour lorsque les valeurs des propriétés changent dans le code.
Installation de WPF
Suivez ce lien pour installer WPF : https://www.guru99.com/download-install-visual-studio.html
Dans la prochaine étape de ce tutoriel sur les applications WPF, nous allons créer notre première application WPF.
Comment créer votre première application WPF ?
Dans cet exemple WPF, nous allons développer une application WPF basique. Commençons donc par une implémentation simple en suivant les étapes décrites dans l'exemple d'application WPF ci-dessous.
Étape 1) Dans Visual Studio, accédez à Fichier > Nouveau > Projet
Étape 2) Dans la fenêtre du nouveau projet
- Sélectionnez l'application WPF
- Entrez le nom comme « MyWPF »
- cliquez sur OK
Étape 3) Visual Studio crée deux fichiers par défaut
- Fichier XAML (MainWindow.xaml)
- Fichier CS (MainWindow.xaml.cs)
Le MainWindow.xaml a
- Une fenêtre de conception
- Fichier XAML
Dans la fenêtre XAML, les balises suivantes sont écrites par défaut :
La Grille est le premier élément par défaut.
Le fichier MainWindow.xaml.cs contient le code-behind correspondant au fichier de conception XAML :
Étape 4) Dans la boîte à outils,
- Faites glisser le texteBox élément dans la fenêtre de conception
- Un texteBox apparaîtra dans la fenêtre de conception
- Vous verrez le code XAML pour le texte.Box ajoutée
Étape 5) Modifiez le texte en « Premier programme WPF ».
Étape 6) Cliquez sur le bouton Démarrer
Étape 7) Vous verrez une fenêtre dans le résultat.
Toutes nos félicitations! Vous avez conçu et créé votre première application WPF. Ensuite, dans ce didacticiel WPF pour débutants, nous verrons la différence entre WPF et WinForms.
WPF contre WinForms
| WPF | WinForms |
|---|---|
| Il s'agit d'un cadre plus récent, donc plus conforme aux normes actuelles. | Il est plus ancien, donc plus éprouvé. |
| Il est flexible et riche en fonctionnalités. Vous pouvez concevoir des applications très complètes sans coder ni acheter de composants. | Pas si riche en fonctionnalités |
| Développeurs de 3rd Les contrôles de configuration des serveurs tiers sont axés sur la compatibilité avec WPF, car c'est l'avenir. | Il existe de nombreux contrôles tiers que vous pouvez acheter ou obtenir gratuitement. |
| XAML permet de créer et de modifier facilement votre interface graphique. Il permet de répartir le travail entre un concepteur (XAML) et un programmeur (C#, VB.NET, etc.). | In Windows Dans les formulaires, tout le code est écrit au même endroit. |
| Les compétences en XAML sont directement transférables aux frameworks plus récents tels que WinUI 3, .NET MAUI et Avalonia UI. | Les compétences WinForms s'appliquent principalement aux applications classiques. Windows Développement d'applications de bureau. |
| La suite de contrôle intégrée de WPF est limitée | Les contrôles intégrés sont très puissants |
Type d'applications créées avec WPF
- WPF est utilisé pour les applications autonomes Windows applications de bureau telles que les outils métiers d'entreprise, les tableaux de bord, les terminaux de trading et les logiciels de conception
- Windows Les formulaires et les pages WPF peuvent coexister dans la même application
- Vous pouvez développer des applications de navigation de type page/fenêtre.
WPF dans .NET moderne
Microsoft WPF a été rendu open source en décembre 2018 et, depuis .NET Core 3.0 (2019), le framework est inclus dans chaque version moderne de .NET, jusqu'à .NET 10 inclus. La migration d'une application vers une version moderne de .NET permet un démarrage plus rapide, un déploiement plus simple grâce à la publication autonome et l'accès aux fonctionnalités actuelles du langage C#, tandis que le modèle de programmation WPF reste inchangé.
WPF reste Windows-uniquement. Si vous choisissez un framework de bureau aujourd'hui, cette comparaison vous sera utile :
| FrameworkTA | Meilleur pour |
|---|---|
| WPF | Mature et riche en fonctionnalités Windows applications de bureau avec un vaste écosystème |
| WindowsUI 3 | Nouvelles applications ciblant le moderne Windows 11 Aspect et sensation |
| .NET FIXE | Applications multiplateformes couvrant Windows, macOS, Android, et iOS |
Étant donné que WPF est activement maintenu et profondément intégré aux logiciels d'entreprise, son apprentissage reste un investissement judicieux. Une fois à l'aise avec la création de ces applications, il est utile de s'exercer aux pratiques les plus courantes. Questions d'entretien WPF pour ancrer des concepts tels que XAML, la liaison de données et l'arborescence visuelle.









