WPF tutorijal za početnike

⚡ Pametni sažetak

WPF (Windows Prezentacija Foundation) je Microsoftokvir za izgradnju bogatih Windows desktop aplikacije. Početnici uče kako se XAML, povezivanje podataka i hardverski ubrzana grafika kombiniraju za stvaranje skalabilnih, vizualno bogatih korisničkih sučelja s manje koda.

  • 🧭 Foundation: WPF je vektorski UI okvir pokretan DirectX-om unutar .NET platforme.
  • 🎨 XAML označavanje: Deklarativna XML sintaksa odvaja dizajn sučelja od C# poslovne logike.
  • 🧱 Architekstura: PresentationFramework, PresentationCore i Milcore surađuju iznad DirectX-a za renderiranje.
  • 🔗 Povezivanje podataka: Ugrađeno povezivanje povezuje kontrole s izvorima podataka i pokreće MVVM obrazac.
  • 🛠️ Praktični početak: Predlošci Visual Studia omogućuju vam izradu i pokretanje prve WPF aplikacije u sedam koraka.
  • 🚀 Moderna relevantnost: WPF je otvorenog koda i dolazi s .NET 10 uz dugoročnu podršku.

WPF tutorijal za početnike

Što je WPF?

WPF je okvir za izgradnju Windows aplikacije koje omogućuju programerima stvaranje bogatih korisničkih sučelja s 3D animacijama i bogatim bojama uz manje složenosti koda. To je vektorski mehanizam za renderiranje koji koristi hardversko ubrzanje modernih grafičkih kartica, što korisničko sučelje čini bržim i visoko skalabilnim. WPF je kratica za Windows Prezentacija Foundation.

WPF se može smatrati evolucijom u odnosu na WinForms. Pruža jednostavan grafički sustav prikaza za Windows i nudi jasno razdvajanje korisničkog sučelja i poslovne logike.

WPF aplikacije se obično implementiraju kao samostalni desktop programi, a mogu se hostirati i kao ugrađeni objekti u drugim aplikacijama.

Zašto WPF?

Postoji mnogo razloga za korištenje WPF platforme. Neki od istaknutih su:

  • Idealna platforma za korištenje ako trebate raditi s različitim vrstama medija
  • WPF vam omogućuje stvaranje prilagođenog korisničkog sučelja. Također vam pomaže kada trebate učitati dio korisničkog sučelja ili želite povezati XML podatke.
  • Omogućuje vam da iskoristite prednosti velike .NET biblioteke klasa na kojoj je izgrađena .NET tehnologija
  • Neovisnost o rezoluciji, tako da aplikacije razvijene pomoću WPF-a mogu raditi na malim zaslonima tableta ili 20-inčnom monitoru
  • WPF se temelji na DirectX-u umjesto na WinAPI-ju. Koristi grafički sustav klijentskog računala, stoga nudi veću snagu grafičkog renderiranja.
  • Podržava model toka dokumenta koji omogućuje kvalitetu izgleda "desktop publishinga"
  • Izgled i ponašanje su labavo povezani. To omogućuje dizajnerima i programerima rad na dva odvojena modela.
  • U WPF okviru možete grafički dizajnirati alate koristeći jednostavne XML dokumente umjesto parsiranja koda.
  • Omogućuje vam korištenje hardverske akceleracije za crtanje GUI-a, za bolje performanse

Zatim, pogledajmo kako se okvir razvijao tijekom vremena.

Povijest WPF-a

Windows 1.0 bilo je prvo GUI okruženje iz MicrosoftRadio je kao sloj iznad DOS-a, oslanjajući se na GDI i USER sustave za grafiku i korisničko sučelje.

DirectX je predstavljen 1995. godine kao visokoučinkoviti grafički sustav namijenjen igrama i drugim grafički povezanim okruženjima. Tijekom godina objavljene su mnoge verzije, a DirectX 9 je pružio biblioteku koja se mogla koristiti s upravljanim .NET kodom.

WPF verzija Godina izdanja .Net verzija Verzija Visual Studio Značajke
3.0 2006 3.0 N / A Prvo izdanje.
Međutim, razvoj WPF-a može se obaviti s VS 2005.
3.5 2007 3.5 SV 2008 Izmjene i poboljšanja u:
Model aplikacije, povezivanje, kontrole, dokumenti, napomene i 3D elementi korisničkog sučelja.
3.5 SP1 2008 3.5 SP1 N / A Izvorna podrška za početni ekran. Nova kontrola web preglednika, podrška za DirectX pixel shader.
4.0 2010 4.0 SV 2010 Nove kontrole: Kalendar, DataGrid, DatePicker. Podrška za višestruki dodir i manipulaciju.
4.5 2012 4.5 SV 2012 Brže pokretanje, poboljšane performanse pri prikazu velikih skupova podataka.
Nova kontrola vrpce i sučelje INotifyDataErrorInfo za validaciju podataka.
4.5.1 2013 4.5.1 SV 2013 Manja poboljšanja performansi i pouzdanosti.
4.5.2 2014 4.5.2 NA Nema velike promjene
4.6 2015 4.6 SV 2015 Prozirna potpora dječjeg prozora
HDPI i poboljšanja na dodir
4.8 2019 4.8 SV 2019 Zadnje veliko izdanje .NET Frameworka, s ispravcima za visoku DPI rezoluciju i poboljšanjima pristupačnosti.
.NET Core 3.0 i noviji 2019 prisutan .NET Core 3.0 do .NET 10 VS 2019/2022 WPF postaje otvorenog koda i dolazi s modernim .NET-om (aplikacije ostaju Windows-samo).

WPF više nije verzioniran odvojeno od .NET-a. Od 2019. godine isporučuje se kao komponenta otvorenog koda moderne .NET platforme, a trenutno izdanje uključeno je u .NET 10, koji je stigao u studenom 2025. kao verzija s dugoročnom podrškom (LTS).

Značajke WPF-a

Donji dijagram grupira glavne WPF mogućnosti, detaljno navedene nakon njega.

Značajke WPF-a
Značajke WPF-a
  • Dokumenti i ispis
  • Sigurnost, pristupačnost i lokalizacija
  • Nudi interoperabilnost sa Windows Kontrole obrazaca
  • Direct3D se koristi u grafičkim aplikacijama gdje je važna izvedba
  • Koristi hardver video kartice za renderiranje
  • Vektorska grafika omogućuje vam skaliranje aplikacije bez gubitka kvalitete
  • WPF podržava logički pikselni sustav s pomičnim zarezom i 32-bitnu ARGB boju.
  • Redefinirajte stilove i predloške kontrole
  • Izrada međunarodnih fontova od složenih fontova
  • WPF renderiranje teksta koristi prednosti ClearType tehnologije
  • Omogućuje vam korištenje tehnike predmemoriranja unaprijed prikazanog teksta u video memoriji
  • Pristup temeljen na resursima za svaku kontrolu
  • Tajmere prezentacije inicijalizira i njima upravlja WPF
  • Također je podržan odnos između videa i animacije
  • U WPF-u, stil je skup svojstava koja bi se trebala primijeniti na sadržaj koji se koristi za vizualno renderiranje.
  • Predlošci u WPF-u vam pomažu promijeniti korisničko sučelje vašeg dokumenta
  • Naredbe su više trbušnjakatract i labavo povezana verzija događaja
  • WPF podrška za naredbe smanjuje količinu koda koji trebamo napisati

Sljedeći u ovom WPF-u C# lekcija, naučit ćemo o WPF osnovnim tipovima i infrastrukturi.

WPF osnovne vrste i infrastrukture

Klase u WPF-u podijeljene su u četiri različite vrste:

  • UIElement
  • FrameworkElement
  • ContentElement
  • FrameworkContentElement

Ove klase poznate su kao klase osnovnih elemenata. One pružaju osnovu za model sastavljanja korisničkih sučelja.

WPF korisnička sučelja sastoje se od elemenata koji su sastavljeni u hijerarhiju stabla koja se naziva stablo elemenata. Stablo elemenata intuitivan je način prikaza korisničkih sučelja i to je struktura putem koje dobivate moćne UI usluge.

XML

Proširivi jezik za označavanje aplikacija, koji se naziva „XAML“ (izgovara se „zammel“), deklarativni je način definiranja korisničkih sučelja.

Ovdje je XAML definicija jednostavnog gumba:

<Button
FontSize="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
Say Hello Guru99</Button>

Prednosti korištenja XAML jezika:

  • XAML odvaja izgled prednjeg dijela od logike pozadinskog dijela
  • XAML je najlakši način predstavljanja korisničkih sučelja
  • XAML učinkovito radi s alatima za dizajn

Kontrolira

WPF okvir podržava mnoge korisne kontrole kao što su:

  • Kontrole za uređivanje poput tekstaBox, ČekBox, Radio gumb
  • Kontrole popisa kao što je popisBox, ListView, TreeView
  • Informacije o korisniku kao što su Label, WPF ProgressBar, ToolTip
  • Radnje poput izbornika, gumba i alatne trake
  • Izgledi kao što su obrub, WPF slika i okvir za prikaz
  • Uobičajeni dijaloški okviri kao što su OpenFileDialog i PrintDialog
  • Kontejneri kao što su TabControl, ScrollBar i GroupBox
  • Rasporedi poput DockPanela, StackPanela i Grida
  • Navigacija poput okvira i hiperveze

Izgled kontrola može se prilagoditi stilovima i predlošcima bez programiranja. Također možete stvoriti prilagođenu kontrolu izvođenjem nove klase iz odgovarajuće osnovne klase.

Izgled

WPF pruža značajku za prilagođavanje izgleda vaše aplikacije. Omogućuje vam postavljanje objekata i vrijednosti za stvari kao što su fontovi, pozadine itd.

Značajka stilova omogućuje vam standardizaciju određenog izgleda cijelog proizvoda. Omogućuje vam da zamijenite zadani izgled uz zadržavanje zadanog ponašanja.

Predložak podataka omogućuje vam kontrolu zadane vizualizacije vezanih podataka. Pomoću tema možete jednostavno primijeniti vizualne stilove operativnog sustava.

Raspored i ploče

Raspored vam pomaže u pravilnom pozicioniranju i dimenzioniranju kontrola. Dio je procesa sastavljanja prezentacije za korisnika. WPF okvir pojednostavljuje proces rasporeda i nudi bolju prilagodljivost izgleda korisničkog sučelja.

Infrastrukturu izgleda nudi pet glavnih klasa: 1) StackPanel, 2) DockPanel, 3) WrapPanel, 4) Grid i 5) Canvas

Grafika

WPF pruža poboljšani grafički sustav:

  • WPF koristi jedinice neovisne o uređaju, što omogućuje razlučivost i neovisnost o uređaju. Svaki piksel neovisan o uređaju automatski se skalira s postavkom sustava o točkama po inču.
  • WPF koristi double umjesto float i podržava širi niz boja
  • WPF grafički mehanizam dizajniran je na takav način da može iskoristiti prednosti grafičkog hardvera kada je dostupan

Dokumenti i ispis

WPF okvir nudi tri vrste dokumenata:

  • Ispravljeni dokumenti: Ova vrsta dokumenta podržava WYSIWYG prezentacija.
  • Dokumenti tijeka: Omogućuje prilagodbu i preoblikovanje sadržaja na temelju varijabli vremena izvođenja kao što su veličina prozora i razlučivost uređaja.
  • XPS dokumenti: Paginirani prikaz elektroničkog papira u XML formatu. XPS je otvoreni, standardizirani format dokumenata.

WPF omogućuje bolju kontrolu nad sustavom ispisa, uključujući udaljeni ispis i redove čekanja. Štoviše, XPS dokumenti mogu se ispisivati ​​izravno bez pretvaranja u format ispisa.

Nakon što smo obradili gradivne blokove, pogledajmo kako se ti dijelovi iznutra uklapaju.

WPF Architektura

WPF je dio .NET frameworka. Sadrži i upravljani i neupravljani kod. Važne komponente WPF arhitekture objašnjene su na slici ispod:

WPF Architektura

WPF Architektura

Komponente WPF arhitekture

  • PresentationFrameworkPomaže vam u stvaranju elemenata najviše razine poput kontrola, stilova, rasporeda, prozora itd.
  • PresentationCoreSadrži osnovne tipove kao što su UIElement i Visual, iz kojih su izvedene sve kontrole i oblici u PresentationFramework.dll.
  • CLR: Čini razvojni proces produktivnim nudeći značajke poput upravljanje memorijom, rješavanje grešaka itd.
  • Milcore: Milcore je dio neupravljanog koda koji nudi usku integraciju s DirectX-om.
  • DirectX: To je niskorazinski API koji renderira grafiku WPF-a. DirectX komunicira s upravljačkim programima i renderira sadržaj.
  • Korisnik32: To je osnovni API koji mnogi programi široko koriste. Upravlja memorijom i odvajanjem procesa. User32 vam pomaže odlučiti koji će se element gdje postaviti na ekranu.
  • kernel: Ulazni podaci potiču kao signal na upravljačkom programu uređaja u kernel modu i usmjeravaju se prema ispravnom procesu povezivanjem s Windows kernel i User32.

WPF vezanje podataka

Povezivanje podataka jedan je od najmoćnijih koncepata u WPF-u. Umjesto pisanja koda koji ručno kopira vrijednosti između kontrola i objekata, deklarirate vezu u XAML-u, a WPF automatski sinkronizira obje strane. Na primjer:

<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />

WPF podržava četiri načina povezivanja:

  • Jednosmjerno: Kontrola se ažurira kada se izvorni podaci promijene
  • Dvosmjerno: Promjene teku u oba smjera između kontrole i izvora
  • Jednokratno: Kontrola čita izvornu vrijednost samo jednom, prilikom učitavanja
  • JednosmjerniIzvor: Kontrola prenosi svoju vrijednost na izvor, nikada obrnuto

Povezivanje podataka je također pokretač MVVM (Model-View-ViewModel) obrasca, najčešće arhitekture za profesionalne WPF aplikacije, jer omogućuje da pogled ostane u XAML-u dok se logika nalazi u testiranim C# klasama.

💡 Savjet: Implementirajte sučelje INotifyPropertyChanged na svoje klase podataka. Bez njega, korisničko sučelje se neće osvježavati kada se vrijednosti svojstava promijene u kodu.

WPF instalacija

Za instalaciju WPF-a pogledajte ovu poveznicu: https://www.guru99.com/download-install-visual-studio.html

Sljedeće u ovom tutorijalu za WPF aplikaciju, izradit ćemo našu prvu WPF aplikaciju.

Kako stvoriti svoju prvu WPF aplikaciju?

U ovom WPF primjeru razvit ćemo osnovnu WPF aplikaciju. Dakle, započnimo jednostavnu implementaciju slijedeći korake navedene u primjeru WPF aplikacije u nastavku.

Korak 1) U Visual Studiju idite na Datoteka > Novo > Projekt

Izbornik Datoteka u Visual Studiu koji prikazuje opciju Novi projekt

Korak 2) U novom prozoru projekta

  1. Odaberite WPF aplikaciju
  2. Unesite naziv kao "MyWPF"
  3. Kliknite U redu

Novi prozor projekta s odabranim predloškom WPF aplikacije

Korak 3) Visual Studio prema zadanim postavkama stvara dvije datoteke

  • XAML datoteka (MainWindow.xaml)
  • CS datoteka (MainWindow.xaml.cs)

Solution Explorer koji prikazuje datoteke MainWindow.xaml i MainWindow.xaml.cs

MainWindow.xaml ima

  1. Dizajn prozor
  2. XAML datoteka

Prozor za dizajn MainWindow.xaml i XAML editor u Visual Studiju

U XAML prozoru se prema zadanim postavkama pišu sljedeće oznake:

Zadane XAML oznake generirane za novi WPF prozor

Mreža je prema zadanim postavkama prvi element.

MainWindow.xaml.cs sadrži odgovarajući kod u pozadini za XAML datoteku dizajna:

Datoteka koda u pozadini MainWindow.xaml.cs za WPF prozor

Korak 4) U kutiji s alatima,

  1. Povucite tekstBox element u prozor dizajna
  2. TekstBox pojavit će se u prozoru dizajna
  3. Vidjet ćete XAML kod za tekstBox dodano

Povlačenje tekstaBox iz alatnog okvira u prozor za WPF dizajn

Korak 5) Promijenite tekst u „Prvi WPF program“.

Uređivanje tekstaBox svojstvo teksta za prvi WPF program

Korak 6) Pritisnite gumb Start

Gumb Start u Visual Studiu za pokretanje WPF aplikacije

Korak 7) U izlazu ćete vidjeti prozor

Prozor pokrenute WPF aplikacije koji prikazuje tekst prvog WPF programa

Čestitamo! Dizajnirali ste i izradili svoju prvu WPF aplikaciju. Zatim ćemo u ovom vodiču za WPF za početnike vidjeti razliku između WPF-a i WinForms-a.

WPF protiv WinForms

WPF WinForms
To je noviji okvir, pa je usklađeniji s trenutačnim standardima. Stariji je, pa je više isproban.
Fleksibilan je i bogat značajkama. Možete dizajnirati vrlo bogate aplikacije bez kodiranja ili kupnje kontrola. Nije toliko bogat značajkama
Programeri 3rd Kontrole stranaka usmjerene su na kompatibilnost s WPF-om jer je to budućnost. Postoje mnoge kontrole trećih strana koje možete kupiti ili dobiti besplatno.
XAML vam omogućuje jednostavno stvaranje i uređivanje vašeg GUI-ja. Omogućuje podjelu posla između dizajnera (XAML) i programera (C#, VB.NET, itd.). In Windows Obrasci, sav kod je napisan na jednom mjestu.
XAML vještine se izravno prenose na novije okvire kao što su WinUI 3, .NET MAUI i Avalonia UI. WinForms vještine se uglavnom primjenjuju na klasične Windows razvoj desktopa.
WPF-ov in-box kontrolni paket je ograničen In-box kontrole su vrlo moćne

Vrsta aplikacija izrađenih s WPF-om

  • WPF se koristi za samostalnu upotrebu. Windows desktop aplikacije kao što su poslovni alati za tvrtke, nadzorne ploče, trgovački terminali i softver za dizajn
  • Windows Obrasci i WPF stranice mogu koegzistirati u istoj aplikaciji
  • Možete razvijati aplikacije u stilu navigacije stranicama/prozorima

WPF u modernom .NET-u

Microsoft WPF otvorenog koda objavljen je u prosincu 2018., a od .NET Core 3.0 (2019.) framework se isporučuje sa svakim modernim .NET izdanjem, sve do .NET 10 uključujući i njega. Premještanje aplikacije na moderni .NET donosi brže pokretanje, jednostavnije implementaciju putem samostalnog objavljivanja i pristup trenutnim značajkama C# jezika, dok WPF programski model ostaje isti.

WPF ostaje Windows-samo. Ako danas birate desktop framework, ova usporedba pomaže:

Okvir Najbolje za
WPF Zrelo, bogato značajkama Windows desktop aplikacije s ogromnim ekosustavom
WindowsUI 3 Nove aplikacije usmjerene na moderno Windows 11 izgled i dojam
.NET FIKSNO Višeplatformske aplikacije koje obuhvaćaju Windows, macOS, Android, i iOS

Budući da se WPF aktivno održava i duboko je ugrađen u poslovni softver, njegovo učenje ostaje praktična investicija. Nakon što se osjećate ugodno u izradi ovih aplikacija, vrijedi vježbati najčešće Pitanja za intervju za WPF zaključati koncepte poput XAML-a, povezivanja podataka i vizualnog stabla.

Pitanja i odgovori

Za dizajniranje sučelja potreban vam je XAML, a za logiku aplikacije C# (ili VB.NET). Osnovno znanje objektno orijentiranog programiranja i .NET biblioteke klasa znatno olakšava učenje WPF-a.

Ne. WPF ovisi o DirectX-u i Windows API-je, tako da radi samo na WindowsZa višeplatformski XAML razvoj, razmotrite Avalonia UI or .NET FIKSNO.

Da. Alati poput GitHub kopilot može generirati XAML izglede, povezujuće izraze i stilove iz komentara, što ubrzava učenje i smanjuje ponavljajuće označavanje za početnike.

Možete se integrirati ML.NET za lokalno strojno učenje ili pozovite usluge umjetne inteligencije u oblaku kao što su Azure OpenAI iz vašeg C# koda, a zatim prikažite rezultate putem standardnog WPF povezivanja podataka.

Da. WPF je otvorenog koda pod MIT licencom i možete besplatno izrađivati ​​aplikacije s Visual Studio Community Edition.

Sažmite ovu objavu uz: