Tutorial WPF pentru începători
⚡ Rezumat inteligent
WPF (Windows Despre Institutul Bruno Comby Foundation) este Microsoftcadrul pentru construirea de bogății Windows aplicații desktop. Începătorii învață cum se combină XAML, legarea datelor și grafica accelerată hardware pentru a crea interfețe utilizator scalabile, bogate în aspect vizual, cu mai puțin cod.

Ce este WPF?
extensia wp este un cadru de construcție Windows aplicații care permit dezvoltatorilor să creeze interfețe utilizator bogate, cu animații 3D și culori bogate, utilizând o complexitate redusă a codului. Este un motor de randare vectorială care utilizează accelerarea hardware a plăcilor grafice moderne, ceea ce face ca interfața utilizator să fie mai rapidă și extrem de scalabilă. WPF este prescurtarea de la Windows Despre Institutul Bruno Comby Foundation.
WPF poate fi considerat o evoluție față de WinForms. Acesta oferă un sistem de afișare grafică ușor de utilizat pentru Windows și oferă o separare clară între interfața cu utilizatorul și logica de business.
Aplicațiile WPF sunt de obicei implementate ca programe desktop independente și pot fi găzduite și ca obiecte încorporate în alte aplicații.
De ce WPF?
Există multe motive pentru utilizarea platformei WPF. Câteva dintre cele mai importante sunt:
- O platformă ideală de utilizat dacă aveți nevoie să vă ocupați de diferite tipuri de media
- WPF vă permite să creați o interfață utilizator cu aspect detaliat. De asemenea, vă ajută atunci când trebuie să încărcați o porțiune a interfeței utilizator sau doriți să legați date XML.
- Vă permite să beneficiați de biblioteca mare de clase .NET, așa cum este construită pe aceasta Tehnologia .NET
- Independență de rezoluție, astfel încât aplicațiile dezvoltate folosind WPF pot rula pe ecrane mici de tabletă sau pe un monitor de 20 de inci
- WPF se bazează pe DirectX în loc de WinAPI. Folosește sistemul grafic al computerului client, oferind astfel o putere de randare grafică mai mare.
- Acceptă un model de documente flux care permite o calitate a aspectului de tip „desktop publishing”
- Aspectul și comportamentul sunt strâns legate. Acest lucru permite designerilor și dezvoltatorilor să lucreze la două modele separate.
- În framework-ul WPF, puteți proiecta grafic instrumente folosind documente XML simple în loc să analizați codul.
- Vă permite să utilizați accelerarea hardware pentru desenarea GUI, pentru o performanță mai bună
În continuare, să vedem cum a evoluat cadrul în timp.
Istoria WPF
Windows 1.0 a fost primul mediu GUI de la MicrosoftA funcționat ca un strat deasupra DOS, bazându-se pe sistemele GDI și USER pentru grafică și interfața cu utilizatorul.
DirectX a fost introdus în 1995 ca un sistem grafic de înaltă performanță destinat jocurilor și altor medii legate de grafică. De-a lungul anilor, au fost lansate multe versiuni, iar DirectX 9 a oferit o bibliotecă ce putea fi utilizată cu cod .NET gestionat.
| Versiunea WPF | Anul lansării | Versiune .Net | Versiunea Visual Studio | Categorii |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | - | Lansare inițială. Cu toate acestea, dezvoltarea WPF se poate face cu VS 2005. |
| 3.5 | 2007 | 3.5 | SUA 2008 | Modificari si imbunatatiri in: Model de aplicație, legături, controale, documente, adnotări și elemente de interfață utilizator 3D. |
| 3.5 SP1 | 2008 | 3.5 SP1 | - | Suport nativ pentru ecran de splash. Nou control al browserului web, suport DirectX pixel shader. |
| 4.0 | 2010 | 4.0 | SUA 2010 | Noi controale: Calendar, DataGrid, DatePicker. Suport pentru Multi-Touch și manipulare. |
| 4.5 | 2012 | 4.5 | SUA 2012 | Pornire mai rapidă, performanță îmbunătățită la afișarea seturilor mari de date. Nou control panglică și interfață INotifyDataErrorInfo pentru validarea datelor. |
| 4.5.1 | 2013 | 4.5.1 | SUA 2013 | Îmbunătățiri minore de performanță și fiabilitate. |
| 4.5.2 | 2014 | 4.5.2 | NA | Nicio schimbare majoră |
| 4.6 | 2015 | 4.6 | SUA 2015 | Suport transparent pentru fereastră pentru copii Îmbunătățiri HDPI și Touch |
| 4.8 | 2019 | 4.8 | SUA 2019 | Ultima versiune majoră de .NET Framework, cu remedieri pentru DPI ridicat și îmbunătățiri ale accesibilității. |
| .NET Core 3.0 și versiunile ulterioare | 2019-prezent | .NET Core 3.0 către .NET 10 | VS 2019/2022 | WPF devine open source și este livrat cu .NET modern (aplicațiile rămân Windows-numai). |
WPF nu mai este versionat separat de .NET. Din 2019, este livrat ca o componentă open-source a platformei .NET moderne, iar versiunea curentă este inclusă în .NET 10, care a sosit în noiembrie 2025 ca versiune cu suport pe termen lung (LTS).
Caracteristicile WPF
Diagrama de mai jos grupează principalele capabilități WPF, enumerate în detaliu după aceasta.

- Documente și tipărire
- Securitate, accesibilitate și localizare
- Oferă interoperabilitate cu Windows Controale de formulare
- Direct3D este utilizat în aplicațiile grafice în care performanța este importantă
- Utilizează hardware-ul plăcii video pentru randare
- Grafica vectorială vă permite să scalați aplicația fără pierderi de calitate
- WPF acceptă un sistem de pixeli logici în virgulă mobilă și culoare ARGB pe 32 de biți
- Redefiniți stiluri și șabloane de control
- Construirea de fonturi internaționale din fonturi compozite
- Redarea textului WPF utilizează tehnologia ClearType
- Vă permite să utilizați tehnica de stocare în cache a textului pre-ratat în memoria video
- Abordare bazată pe resurse pentru fiecare control
- Temporizatoarele de prezentare sunt inițializate și gestionate de WPF
- Relația dintre video și animație este, de asemenea, susținută
- În WPF, un stil este un set de proprietăți care ar trebui aplicate conținutului utilizat pentru randarea vizuală.
- Șabloanele din WPF vă ajută să schimbați interfața cu utilizatorul a documentului dvs.
- Comenzile sunt mai degrabă un abdomentract și versiunea slab cuplată a evenimentelor
- Suportul WPF pentru comenzi reduce cantitatea de cod pe care trebuie să o scriem
Următorul în acest WPF Tutorial C#, vom învăța despre tipurile de nuclee și infrastructura WPF.
Tipuri și infrastructuri de bază WPF
Clasele din WPF sunt împărțite în patru tipuri diferite:
- UIElement
- FrameworkElement
- ContentElement
- FrameworkContentElement
Aceste clase sunt cunoscute sub numele de clase de elemente de bază. Ele oferă fundația pentru un model de compunere a interfețelor utilizator.
Interfețele utilizator WPF sunt compuse din elemente asamblate într-o ierarhie arborescentă numită arborele de elemente. Arborele de elemente este o modalitate intuitivă de a structura interfețele utilizator și este structura prin care obțineți servicii puternice de interfață utilizator.
XAML
Limbajul extensibil de marcare a aplicațiilor, numit „XAML” (pronunțat „zammel”), este o modalitate declarativă de a defini interfețele utilizator.
Iată definiția XAML a unui buton simplu:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Avantajele utilizării limbajului XAML:
- XAML separă aspectul front-end de logica back-end
- XAML este cea mai ușoară metodă de a reprezenta interfețele utilizator
- XAML funcționează eficient cu instrumentele de design
Controale
Framework-ul WPF suportă multe controale utile, cum ar fi:
- Comenzi de editare precum TextBox, VerificaBox, Buton de radio
- Listează controale, cum ar fi ListăBox, ListView, TreeView
- Informații despre utilizator, cum ar fi Label, WPF ProgressBar, ToolTip
- Acțiuni precum Meniu, Buton și Bară de instrumente
- Aspecte precum Border, WPF Image și Viewbox
- Casete de dialog comune, cum ar fi OpenFileDialog și PrintDialog
- Containere precum TabControl, ScrollBar și GroupBox
- Layout-uri precum DockPanel, StackPanel și Grid
- Navigare, cum ar fi Frame și Hyperlink
Aspectul controalelor poate fi personalizat cu stiluri și șabloane fără programare. De asemenea, puteți crea un control personalizat derivând o nouă clasă dintr-o clasă de bază adecvată.
Aspect
WPF oferă o caracteristică pentru personalizarea aspectului aplicației dvs. Vă permite să setați obiecte și valori pentru lucruri precum fonturi, fundaluri etc.
Funcția de stiluri vă permite să standardizați un aspect specific pentru întregul produs. Vă permite să înlocuiți aspectul implicit, păstrând în același timp comportamentul implicit.
Un șablon de date vă permite să controlați vizualizarea implicită a datelor legate. Cu ajutorul temelor, puteți aplica cu ușurință stilurile vizuale ale sistemului de operare.
Aspect și panouri
Layout-ul vă ajută să poziționați și să dimensionați corect controalele. Face parte din procesul de compunere a prezentării pentru utilizator. Framework-ul WPF facilitează procesul de layout și oferă o mai bună adaptabilitate a aspectului interfeței utilizator.
Infrastructura de layout este oferită de cinci clase principale: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid și 5) Canvas
Grafică
WPF oferă un sistem grafic îmbunătățit:
- WPF utilizează unități independente de dispozitiv, permițând rezoluția și independența dispozitivului. Fiecare pixel independent de dispozitiv se scalează automat cu setarea sistemului pentru puncte pe inch.
- WPF folosește dublu în loc de float și acceptă o gamă mai largă de culori
- Motorul grafic WPF este proiectat astfel încât să poată profita de hardware-ul grafic atunci când este disponibil
Documente și tipărire
Framework-ul WPF oferă trei tipuri de documente:
- Documente fixe: Acest tip de document acceptă WYSIWPrezentare YG.
- Documente de flux: Vă permite să ajustați și să redistribuiți conținutul pe baza variabilelor de rulare, cum ar fi dimensiunea ferestrei și rezoluția dispozitivului.
- Documente XPS: O reprezentare paginată a hârtiei electronice într-un format bazat pe XML. XPS este un format de document deschis, standardizat.
WPF permite un control mai bun asupra sistemului de imprimare, inclusiv imprimarea la distanță și cozile. Mai mult, documentele XPS pot fi imprimate direct fără a fi convertite într-un format de imprimare.
Odată ce elementele constitutive au fost acoperite, să vedem cum se îmbină aceste piese pe interior.
extensia wp Architectură
WPF face parte din framework-ul .NET. Conține atât cod gestionat, cât și cod negestionat. Componentele importante ale arhitecturii WPF sunt explicate în figura de mai jos:
Componente ale arhitecturii WPF
- Cadrul de prezentareVă ajută să creați elemente de nivel superior, cum ar fi controale, stiluri, layout-uri, ferestre etc.
- PresentationCoreAcesta conține tipuri de bază precum UIElement și Visual, din care derivă toate controalele și formele din PresentationFramework.dll.
- CRJ: face ca procesul de dezvoltare să fie productiv, oferind caracteristici precum gestionarea memoriei, tratarea erorilor etc.
- Milcore: Milcore este o parte a codului negestionat care oferă o integrare strânsă cu DirectX.
- DirectX: Este API-ul de nivel scăzut care redă grafica WPF. DirectX interacționează cu driverele și redă conținutul.
- Utilizator 32: Este o API de bază, utilizată pe scară largă de multe programe. Gestionează memoria și separarea proceselor. User32 vă ajută să decideți ce element va fi plasat unde pe ecran.
- Nucleu: Intrarea provine ca un semnal pe un driver de dispozitiv în mod kernel și este rutată către procesul corect prin conectarea cu Windows kernel și User32.
Legarea datelor WPF
Legarea datelor este unul dintre cele mai puternice concepte din WPF. În loc să scrieți cod care copiază manual valori între controale și obiecte, declarați o conexiune în XAML, iar WPF menține ambele părți sincronizate automat. De exemplu:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF acceptă patru moduri de legare:
- Sens unic: Controlul se actualizează atunci când datele sursă se modifică
- Bidirecțional: Modifică fluxul în ambele direcții între control și sursă
- O dată: Controlul citește valoarea sursă o singură dată, la momentul încărcării
- Sens unic către sursă: Controlul își transmite valoarea către sursă, niciodată invers.
Legarea datelor este, de asemenea, motorul din spatele modelului MVVM (Model-View-ViewModel), cea mai comună arhitectură pentru aplicațiile WPF profesionale, deoarece permite vizualizarea să rămână în XAML în timp ce logica se află în clase C# testabile.
💡 Sfat: Implementați interfața INotifyPropertyChanged în clasele de date. Fără aceasta, interfața cu utilizatorul nu se va actualiza atunci când valorile proprietăților se modifică în cod.
Instalare WPF
Consultați acest link pentru a instala WPF: https://www.guru99.com/download-install-visual-studio.html
În continuare, în acest tutorial despre aplicațiile WPF, vom construi prima noastră aplicație WPF.
Cum să creezi prima ta aplicație WPF?
În acest exemplu WPF, vom dezvolta o aplicație WPF de bază. Așadar, să începem implementarea simplă urmând pașii dați în exemplul de aplicație WPF de mai jos.
Pas 1) În Visual Studio, accesați Fișier > Nou > Proiect
Pas 2) În noua fereastră de proiect
- Selectați aplicația WPF
- Introduceți numele ca „MyWPF”
- Faceți clic pe OK
Pas 3) Visual Studio creează două fișiere în mod implicit
- Fișier XAML (MainWindow.xaml)
- Fișier CS (MainWindow.xaml.cs)
MainWindow.xaml are
- O fereastră de design
- Fișier XAML
În fereastra XAML, următoarele etichete sunt scrise în mod implicit:
Grila este primul element implicit.
MainWindow.xaml.cs conține codul-behind corespunzător pentru fișierul de design XAML:
Pas 4) În trusa de scule,
- Trageți textulBox element la fereastra de proiectare
- Un textBox va apărea în fereastra de proiectare
- Veți vedea cod XAML pentru TextBox adăugat
Pas 5) Schimbați textul în „Primul program WPF”.
Pas 6) Faceți clic pe butonul Start
Pas 7) Veți vedea o fereastră în rezultat
Felicitări! Ați proiectat și creat prima aplicație WPF. În continuare, în acest tutorial WPF pentru începători, vom vedea diferența dintre WPF și WinForms.
WPF vs. WinForms
| extensia wp | WinForms |
|---|---|
| Este un cadru mai nou, deci este mai în ton cu standardele actuale. | Este mai vechi, deci este mai încercat și testat. |
| Este flexibil și bogat în funcții. Poți proiecta aplicații foarte complexe fără a programa sau a cumpăra controale. | Nu atât de bogat în funcții |
| Dezvoltatorii de 3rd Controalele de grup se concentrează pe compatibilitatea cu WPF, deoarece este viitorul. | Există multe controale de la terți pe care le puteți cumpăra sau obține gratuit. |
| XAML vă permite să creați și să editați cu ușurință interfața grafică. Permite împărțirea muncii între un designer (XAML) și un programator (C#, VB.NET etc.). | In Windows Formulare, tot codul este scris într-un singur loc. |
| Competențele XAML se transferă direct către framework-uri mai noi, cum ar fi WinUI 3, .NET MAUI și Avalonia UI. | Abilitățile WinForms se aplică în principal la clasic Windows dezvoltare desktop. |
| Suita de control integrată a WPF este limitată | Comenzile din cutie sunt foarte puternice |
Tip de aplicații construite cu WPF
- WPF este utilizat pentru utilizare independentă Windows aplicații desktop, cum ar fi instrumente pentru linia de business a întreprinderii, tablouri de bord, terminale de tranzacționare și software de design
- Windows Formularele și paginile WPF pot coexista în aceeași aplicație
- Puteți dezvolta aplicații în stilul de navigare pe pagină/fereastră
WPF în .NET modern
Microsoft WPF open-source în decembrie 2018, iar de la .NET Core 3.0 (2019), framework-ul a fost livrat cu fiecare versiune modernă de .NET, până la .NET 10 inclusiv. Mutarea unei aplicații la .NET modern aduce o pornire mai rapidă, o implementare mai simplă prin publicare autonomă și acces la caracteristicile actuale ale limbajului C#, în timp ce modelul de programare WPF rămâne același.
WPF rămâne WindowsNumai. Dacă alegeți astăzi un framework desktop, această comparație vă ajută:
| Cadru | Cele mai bune |
|---|---|
| extensia wp | Matur, bogat în funcții Windows aplicații desktop cu un ecosistem imens |
| WindowsUI 3 | Noi aplicații care vizează mediul modern Windows 11 aspect și senzație |
| .NET FIXAT | Aplicații multiplatformă care se întind Windows, macOS, Android, și iOS |
Deoarece WPF este întreținut activ și profund integrat în software-ul enterprise, învățarea acestuia rămâne o investiție practică. Odată ce vă simțiți confortabil construind aceste aplicații, merită să exersați cele mai comune... Întrebări de interviu WPF pentru a bloca concepte precum XAML, legarea datelor și arborele vizual.









