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.

Š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.

- 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:
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
Korak 2) U novom prozoru projekta
- Odaberite WPF aplikaciju
- Unesite naziv kao "MyWPF"
- Kliknite U redu
Korak 3) Visual Studio prema zadanim postavkama stvara dvije datoteke
- XAML datoteka (MainWindow.xaml)
- CS datoteka (MainWindow.xaml.cs)
MainWindow.xaml ima
- Dizajn prozor
- XAML datoteka
U XAML prozoru se prema zadanim postavkama pišu sljedeće oznake:
Mreža je prema zadanim postavkama prvi element.
MainWindow.xaml.cs sadrži odgovarajući kod u pozadini za XAML datoteku dizajna:
Korak 4) U kutiji s alatima,
- Povucite tekstBox element u prozor dizajna
- TekstBox pojavit će se u prozoru dizajna
- Vidjet ćete XAML kod za tekstBox dodano
Korak 5) Promijenite tekst u „Prvi WPF program“.
Korak 6) Pritisnite gumb Start
Korak 7) U izlazu ćete vidjeti prozor
Č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.









