Tutoriel WPF pour débutants
Qu'est-ce que WPF ?
WPF est un cadre pour construire Windows applications qui permettent aux utilisateurs de développer des interfaces utilisateur riches avec des animations 3D et des couleurs riches avec moins de complexité de code. Il s'agit d'un moteur de rendu vectoriel qui utilise l'accélération matérielle des cartes graphiques modernes, ce qui rend l'UL plus rapide et hautement évolutif. WPF signifie Windows Présentation Foundation.
WPF peut être considéré comme une évolution par rapport à WinForms. Il produit un système d'affichage graphique facile à utiliser pour Windows. Il offre une séparation facile entre l’interface utilisateur et la logique métier.
Les applications WPF peuvent être déployées sur votre système en tant que programme de bureau autonome ou hébergées en tant qu'objet intégré dans un site Web.
Pourquoi WPF ?
Il existe de nombreuses raisons d'utiliser la plate-forme WPF, les plus importantes étant :
- 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 skinnée. Il vous aide également lorsque vous devez charger une partie de l'interface utilisateur ou si vous souhaitez 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, de sorte que les applications développées à l'aide de WMF peuvent être exécutées sur des appareils mobiles ou un moniteur de 20 pouces
- WPF s'appuie sur DirectX au lieu de WinAPI. Il offre le système graphique de l'ordinateur client. Ainsi, offrant une plus grande puissance de rendu graphique
- Prend en charge un modèle de document de flux qui permet une qualité de mise en page de « publication assistée par ordinateur »
- L’apparence et le comportement sont vaguement couplés. Cela permet aux concepteurs et aux développeurs de travailler sur deux modèles distincts
- Dans le framework WMF, vous pouvez concevoir graphiquement des outils sur de simples documents XML au lieu d'analyser le code.
- Vous permet d'utiliser l'accélération matérielle pour dessiner l'interface graphique, pour de meilleures performances
Histoire de WPF
Windows 1.0 était le premier environnement GUI de Microsoft. Il fonctionne comme une couche au-dessus de DOS, en s'appuyant sur les systèmes GDI et USER pour l'interface graphique et utilisateur.
DirectX a été introduit en 1995 en tant que système graphique hautes performances. Il était destiné aux jeux et autres environnements liés aux graphiques. Au fil des années, de nombreuses versions publiées avec Directx9 fournissent une bibliothèque à utiliser avec le code mange.Net.
Version WPF | Année de sortie | .Net | Version Visual Studio | Caractéristiques |
---|---|---|---|---|
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 Ul 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 | Nouveaux champs : Calendrier. DataGrid, DatePicker. Multi-Touch et Manipulation |
4.5 | 2012 | 4.5 | contre 2012 | Temps de configuration plus rapide et performances améliorées pour les effets Bitmap. Nouveaux champs : Calendrier. DataGrid, DatePicker. Multi-Touch et Manipulation |
4.5.1 | 2013 | 4.5.1 | contre 2013 | Nouveau champ Ruban Nouvelle interface INotifyDataErrorlnfo |
4.5.2 | 2014 | 4.5.2 | NA | Pas de changement majeur Pas de changement majeur |
4.6 | 2015 | 4.6 | contre 2015 | Support de fenêtre enfant transparent Améliorations HDPI et Touch |
La dernière version stable de WPF 5.0.6, publiée en avril 2021.
Fonctionnalités de WPF
- 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 faire évoluer votre application sans perte de qualité
- WPF prend en charge le système de pixels logiques à virgule flottante et la couleur ARVB 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 vous aide à tirer 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 basé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
- Dans 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 dans WPF vous aident à modifier l'Ul de votre document
- Les commandes sont des versions d'événements plus abstraites et faiblement couplées.
- 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 en apprendrons davantage sur les types de cœurs et l'infrastructure 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, appelées classes d'éléments de base. Il constitue la base d'un modèle de composition d'interfaces utilisateur.
Les interfaces utilisateur WPF sont composées d'éléments assemblés dans une hiérarchie arborescente. C'est ce qu'on appelle l'arbre des éléments. L'arborescence des éléments est un moyen intuitif de concevoir l'interface utilisateur. C'est une structure qui vous permet d'obtenir les fonctionnalités de puissants services d'interface utilisateur.
XAML
Le langage de balisage d'application extensible, appelé « XAML » ou « zammel », est un moyen déclaratif de définir les interfaces utilisateur.
Voici la définition XAML d’un bouton simple :
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Avantage d'utiliser le langage XAML :
- XAML séparant l'apparence frontale de la logique back-end
- XAML est la méthode la plus simple pour représenter les interfaces utilisateur
- XAML fonctionne efficacement avec des outils
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.
- Conteneurs tels que TabContro, ScrollBar et GroupBox
- Mises en page comme DocPanel, 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.
Apparence
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.
Le modèle de données vous permet de contrôler la visualisation par défaut des données liées. À l'aide de thèmes, vous pouvez facilement visualiser les styles du système d'exploitation.
Disposition et panneaux
La mise en page vous aide à contrôler correctement le positionnement et le dimensionnement. Cela fait partie du processus de composition de la présentation pour l'utilisateur. Le framework WPF facilite le processus de mise en page et offre une meilleure adaptabilité de l'apparence de l'interface utilisateur.
L'infrastructure de mise en page est offerte par différentes classes : 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid et 5) Canvas
Graphiques
WPF fournit un système graphique amélioré comme
- WPF utilise des unités indépendantes du périphérique, permettant une résolution et une indépendance du périphérique. Par conséquent, chaque pixel, indépendant de l'appareil, est automatiquement mis à l'échelle avec le système de configuration des points par pouce.
- 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 : Il s'agit d'une représentation paginée de papier électronique dans un format basé sur XML. XPS est un format de document open source et multiplateforme.
WPF permet un meilleur contrôle sur le système d'impression. Il comprend l'impression à distance et les files d'attente. De plus, les documents XPS peuvent être imprimés directement sans les convertir en format d'impression.
WPF Architecture
WPF fait partie du framework .NET. Il contient du code managé et non managé. Les composants importants 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ésentationCore: Il contient des types de base tels que UIElement, Visual de tous les contrôles et les formes sont dérivées dans PresentationFramework.dll.
- 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: C'est l'API de bas niveau qui permet le rendu graphique de WPF. Les discussions DirectX interagissent avec les pilotes et restituent le contenu.
- Utilisateur32 : Il s’agit d’une API de base largement utilisée par de nombreux programmes. Il gère la mémoire et la séparation des processus. User32 vous aide à décider quel élément sera placé où sur 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é et en se connectant avec Windows noyau et User32.
Installation de WPF
Reportez-vous à ce lien pour installer WPF https://www.guru99.com/download-install-visual-studio.html
Ensuite, dans ce didacticiel d'application WPF, nous allons créer notre premier WPF.
Comment créer votre première application WPF ?
Dans cet exemple WPF, nous développerons une application WPF de base. Commençons donc la mise en œuvre simple en suivant les étapes indiquées dans les exemples d'applications WPF ci-dessous.
Étape 1) Dans Visual Studio, accédez à Fichier > 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 les fenêtres XAML, les balises suivantes sont écrites par défaut
La Grille est le premier élément par défaut.
Le MainWindow.xaml.cs contient le code correspondant derrière le 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 texteBox ajoutée
Étape 5) Remplacez le texte par « Premier programme WPF ».
Étape 6) Cliquez sur le bouton Démarrer
Étape 7) Vous verrez une fenêtre à la sortie
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 riches sans coder ni acheter de contrôles. | Pas si riche en fonctionnalités |
Développeurs de 3rd les contrôles des parties 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 vous 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#, ASP.net, etc.). | In Windows Forme tout le code écrit en un seul endroit. |
WPF peut créer des interfaces utilisateur pour les deux Windows applications et applications Web comme Silverlight et XBAP. | Pas de tel soutien |
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 tente de remplacer les formulaires Web et les formulaires Windows : les applications peuvent être créées pour s'exécuter dans un navigateur ou dans une fenêtre autonome.
- Windows Les formulaires et les pages WPF peuvent coexister dans la même application
- Vous pouvez développer des applications de pages/fenêtres
Guide rapide
- Le formulaire complet WPF est Windows Présentation Foundation
- C'est une plate-forme idéale à utiliser si vous devez gérer différents types de médias
- Windows 1.0 était le premier environnement GUI de Microsoft qui travaillait sous DOS et s'appuyait sur les systèmes GDI et USER
- WPF dans .NET offre une interopérabilité avec Windows Champs de formulaires
- WPF est divisé en quatre types différents comme UIElement, FrameworkElement ContentElement et FrameworkContentElement
- Les composants les plus importants d'une partie de l'architecture WPF sont PrésentationFramework, PrésentationCore, CLR, Milcore, DirectX, User32 et Kernel.
- WPF est un framework plus récent que WinForms, il est donc plus conforme aux normes actuelles
- Windows Les formulaires et les pages WPF peuvent coexister dans la même application