WPF oktatóanyag kezdőknek
⚡ Okos összefoglaló
WPF (Windows Bemutatás Foundation) az Microsoftkeretrendszere a gazdagság építéséhez Windows asztali alkalmazások. A kezdők megtanulják, hogyan kombinálható az XAML, az adatkötés és a hardveresen gyorsított grafika, hogy skálázható, vizuálisan gazdag felhasználói felületeket hozzon létre kevesebb kóddal.

Mi az a WPF?
WPF építési keret Windows olyan alkalmazások, amelyek lehetővé teszik a fejlesztők számára, hogy gazdag felhasználói felületeket hozzanak létre 3D animációkkal és gazdag színekkel, kevesebb kódkomplexitással. Ez egy vektor alapú renderelő motor, amely a modern grafikus kártyák hardveres gyorsítását használja, ami gyorsabbá és könnyen skálázhatóvá teszi a felhasználói felületet. A WPF a következő rövidítést jelenti: Windows Bemutatás Foundation.
A WPF a WinForms továbbfejlesztésének tekinthető. Könnyen kezelhető grafikus megjelenítő rendszert biztosít a következőkhöz: Windows és tiszta szétválasztást kínál a felhasználói felület és az üzleti logika között.
A WPF alkalmazásokat jellemzően önálló asztali programként telepítik, de beágyazott objektumként is elhelyezhetők más alkalmazásokban.
Miért WPF?
Számos oka van a WPF platform használatának. Néhány kiemelkedő ezek közül:
- Ideális platform, ha különféle médiatípusokkal szeretne foglalkozni
- A WPF lehetővé teszi egy külső felhasználói felület létrehozását. Segít akkor is, ha a felhasználói felület egy részét kell betölteni, vagy XML adatokat kell kötni.
- Lehetővé teszi, hogy kihasználja a nagy .NET osztálykönyvtár előnyeit, ahogy arra épül .NET technológia
- Felbontásfüggetlen, így a WPF-fel fejlesztett alkalmazások kis táblagép-képernyőkön vagy egy 20 hüvelykes monitoron is futtathatók
- A WPF a WinAPI helyett DirectX-re épül. A kliens számítógép grafikus rendszerét használja, így nagyobb grafikus renderelési teljesítményt kínál.
- Támogatja a flow dokumentummodellt, amely lehetővé teszi a „desktop publishing” minőségű elrendezést
- A megjelenés és a viselkedés lazán összekapcsolódik. Ez lehetővé teszi a tervezők és a fejlesztők számára, hogy két különálló modellen dolgozzanak.
- A WPF keretrendszerben grafikusan tervezhet eszközöket egyszerű XML dokumentumok használatával a kód elemzése helyett.
- Lehetővé teszi hardveres gyorsítás használatát a grafikus felhasználói felület megrajzolásához a jobb teljesítmény érdekében
Ezután nézzük meg, hogyan fejlődött a keretrendszer az idők során.
A WPF története
Windows Az 1.0 volt az első grafikus felhasználói felület MicrosoftA DOS rétegeként működött, a GDI és a USER rendszerekre támaszkodva a grafika és a felhasználói felület tekintetében.
A DirectX-et 1995-ben mutatták be, mint egy nagy teljesítményű grafikus rendszert, amelyet játékokhoz és más grafikai környezetekhez terveztek. Az évek során számos verzió jelent meg, és a DirectX 9 egy olyan könyvtárat biztosított, amely felügyelt .NET kóddal használható.
| WPF verzió | Kiadás éve | .Net verzió | Visual Studio verzió | Jellemzők |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | N / A | Első kiadás. A WPF fejlesztés azonban elvégezhető a VS 2005-tel. |
| 3.5 | 2007 | 3.5 | ZS 2008 | Módosítások és fejlesztések a következőkben: Alkalmazásmodell, kötés, vezérlők, dokumentumok, annotációk és 3D felhasználói felület elemei. |
| 3.5 SP1 | 2008 | 3.5 SP1 | N / A | Natív indítóképernyő támogatás. Új webböngésző vezérlés, DirectX pixel shader támogatás. |
| 4.0 | 2010 | 4.0 | ZS 2010 | Új vezérlők: Naptár, DataGrid, DatePicker. Többpontos érintés és manipuláció támogatása. |
| 4.5 | 2012 | 4.5 | ZS 2012 | Gyorsabb indítás, jobb teljesítmény nagy adathalmazok megjelenítésekor. Új menüszalag-vezérlő és INotifyDataErrorInfo felület az adatellenőrzéshez. |
| 4.5.1 | 2013 | 4.5.1 | ZS 2013 | Kisebb teljesítmény- és megbízhatósági fejlesztések. |
| 4.5.2 | 2014 | 4.5.2 | NA | Nincs jelentős változás |
| 4.6 | 2015 | 4.6 | ZS 2015 | Átlátszó gyerekablak tartó HDPI és Touch fejlesztések |
| 4.8 | 2019 | 4.8 | ZS 2019 | A .NET-keretrendszer utolsó jelentős kiadása, nagy DPI-felbontású javításokkal és akadálymentesítési fejlesztésekkel. |
| .NET Core 3.0-tól felfelé | 2019-jelen | .NET Core 3.0-ról .NET 10-re | VS 2019/2022 | A WPF nyílt forráskódúvá válik, és modern .NET-tel érkezik (az alkalmazások továbbra is Windows-csak). |
A WPF már nem verziózódik külön a .NET-től. 2019 óta a modern .NET platform nyílt forráskódú komponenseként jelenik meg, a jelenlegi kiadás pedig a .NET 10 része, amely 2025 novemberében jelent meg hosszú távú támogatású (LTS) verzióként.
A WPF jellemzői
Az alábbi ábra a WPF főbb képességeit csoportosítja, részletesen utána felsorolva.

- Dokumentumok és nyomtatás
- Biztonság, hozzáférhetőség és lokalizáció
- Együttműködést kínál a következővel Windows Űrlapvezérlők
- A Direct3D-t grafikus alkalmazásokban használják, ahol a teljesítmény fontos
- A megjelenítéshez a videokártya hardvert használja
- A vektor alapú grafika lehetővé teszi az alkalmazás méretezését a minőség romlása nélkül
- A WPF támogatja a lebegőpontos logikai pixelrendszert és a 32 bites ARGB színeket.
- Stílusok és vezérlősablonok újradefiniálása
- Nemzetközi betűtípusok építése összetett betűtípusokból
- A WPF szövegmegjelenítés kihasználja a ClearType technológiát
- Lehetővé teszi az előre renderelt szöveg gyorsítótárazási technikájának használatát a videomemóriában
- Erőforrás-alapú megközelítés minden ellenőrzéshez
- A bemutató időzítőit a WPF inicializálja és kezeli
- A videó és az animáció közötti kapcsolat szintén támogatott
- A WPF-ben a stílus tulajdonságok halmaza, amelyeket a vizuális megjelenítéshez használt tartalomra kell alkalmazni.
- A WPF sablonjai segítenek a dokumentum felhasználói felületének megváltoztatásában.
- A parancsok inkább hasizmokat igényelnek.tract és az események lazán kapcsolt változata
- A WPF parancsok támogatása csökkenti a megírandó kód mennyiségét
Következő ebben a WPF-ben C# oktatóanyag, megismerkedünk a WPF magtípusaival és infrastruktúrájával.
A WPF alaptípusai és infrastruktúrái
A WPF osztályai négy különböző típusra oszthatók:
- UIEelem
- FrameworkElement
- Tartalomelem
- FrameworkContentElement
Ezeket az osztályokat alapelem osztályoknak nevezzük. Ezek adják az alapot a felhasználói felületek komponálásának modelljéhez.
A WPF felhasználói felületek elemekből állnak, amelyek egy fa hierarchiában, az úgynevezett elemfában helyezkednek el. Az elemfa egy intuitív módja a felhasználói felületek elrendezésének, és ez az a struktúra, amelyen keresztül hatékony felhasználói felületi szolgáltatásokat kapunk.
XML
Az Extensible Application Markup Language, más néven „XAML” (ejtsd: „zammel”), egy deklaratív módja a felhasználói felületek definiálásának.
Íme egy egyszerű gomb XAML definíciója:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Az XAML nyelv használatának előnyei:
- Az XAML elválasztja a felhasználói felület megjelenését a háttérlogikától
- Az XAML a legegyszerűbb módszer a felhasználói felületek ábrázolására
- A XAML hatékonyan működik tervezőeszközökkel
Controls
A WPF keretrendszer számos hasznos vezérlőt támogat, mint például:
- Szerkesztési vezérlők, például a szövegBox, Jelölje beBox, Rádiógomb
- Listavezérlők, például ListaBox, ListView, TreeView
- Felhasználói információk, például címke, WPF folyamatsáv, eszköztipp
- Műveletek, például menü, gomb és eszköztár
- Megjelenések, például Szegély, WPF-kép és Nézetdoboz
- Gyakori párbeszédpanelek, például az OpenFileDialog és a PrintDialog
- Konténerek, például TabControl, ScrollBar és GroupBox
- Elrendezések, mint például a DockPanel, a StackPanel és a Grid
- Navigáció, például keret és hiperhivatkozás
A vezérlők megjelenése programozás nélkül testreszabható stílusokkal és sablonokkal. Egyéni vezérlőt úgy is létrehozhat, hogy új osztályt származtat egy megfelelő alaposztályból.
megjelenés
A WPF lehetőséget biztosít az alkalmazás megjelenésének testreszabására. Lehetővé teszi objektumok és értékek beállítását olyan dolgokhoz, mint a betűtípusok, hátterek stb.
A stílusok funkció lehetővé teszi, hogy szabványosítson egy adott megjelenést a teljes termékhez. Lehetővé teszi az alapértelmezett megjelenés cseréjét az alapértelmezett viselkedés megtartása mellett.
Egy adatsablon lehetővé teszi a kötött adatok alapértelmezett vizualizációjának szabályozását. A témák segítségével könnyedén alkalmazhatja az operációs rendszer vizuális stílusait.
Elrendezés és panelek
Az elrendezés segít a vezérlők megfelelő elhelyezésében és méretezésében. Ez a felhasználó számára készült prezentáció összeállításának folyamatának része. A WPF keretrendszer megkönnyíti az elrendezési folyamatot, és a felhasználói felület megjelenésének jobb alkalmazkodóképességét kínálja.
Az elrendezési infrastruktúrát öt fő osztály kínálja: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid és 5) Canvas
Grafika
A WPF egy továbbfejlesztett grafikus rendszert kínál:
- A WPF eszközfüggetlen egységeket használ, lehetővé téve a felbontás és az eszközfüggetlenséget. Minden eszközfüggetlen pixel automatikusan méreteződik a rendszer pont/hüvelyk beállításával.
- A WPF dupla színt használ a float helyett, és szélesebb színválasztékot támogat
- A WPF grafikus motort úgy tervezték meg, hogy ki tudja használni a grafikus hardver előnyeit, ha rendelkezésre áll
Dokumentumok és nyomtatás
A WPF keretrendszer háromféle dokumentumot kínál:
- Rögzített dokumentumok: Ez a típusú dokumentum támogatja a WY-tSIWYG bemutató.
- Folyamatos dokumentumok: Lehetővé teszi a tartalom beállítását és újratördelését a futásidejű változók, például az ablakméret és az eszközfelbontás alapján.
- XPS dokumentumok: Elektronikus dokumentum oldalszámozott ábrázolása XML-alapú formátumban. Az XPS egy nyílt, szabványosított dokumentumformátum.
A WPF jobb kontrollt biztosít a nyomtatási rendszer felett, beleértve a távoli nyomtatást és a várakozási sorokat is. Ezenkívül az XPS dokumentumok közvetlenül kinyomtathatók anélkül, hogy nyomtatási formátumba kellene konvertálni őket.
Miután az építőelemeket lefedtük, nézzük meg, hogyan illeszkednek ezek a darabok belsőleg egymáshoz.
WPF Architectúra
A WPF a .NET keretrendszer része. Tartalmaz mind felügyelt, mind nem felügyelt kódot. A WPF architektúra fontosabb összetevőit az alábbi ábra mutatja be:
A WPF architektúra összetevői
- PresentationFramework: Segít létrehozni a legfelső szintű elemeket, például vezérlőket, stílusokat, elrendezéseket, ablakokat stb.
- PresentationCoreOlyan alaptípusokat tartalmaz, mint az UIElement és a Visual, amelyekből a PresentationFramework.dll összes vezérlőeleme és alakzata származik.
- CLR: Hatékonyabbá teszi a fejlesztési folyamatot azáltal, hogy olyan funkciókat kínál, mint pl memóriakezelés, hibakezelés stb.
- Milcore: A Milcore a nem menedzselt kód része, amely szoros integrációt kínál a DirectX-szel.
- DirectX: Ez az alacsony szintű API, amely a WPF grafikáját jeleníti meg. A DirectX együttműködik az illesztőprogramokkal és jeleníti meg a tartalmat.
- Felhasználó32: Ez egy alapvető API, amelyet számos program széles körben használ. Kezeli a memóriát és a folyamatok szétválasztását. A User32 segít eldönteni, hogy melyik elem hova kerüljön a képernyőn.
- kernel: A bemenet egy kernel módú eszközillesztő jeléből származik, és a megfelelő folyamathoz kerül a rendszermaghoz való csatlakozás révén. Windows kernel és User32.
WPF adatkötés
Az adatkötés a WPF egyik legerősebb koncepciója. Ahelyett, hogy manuálisan másolnánk az értékeket a vezérlők és objektumok között, XAML-ben deklarálunk egy kapcsolatot, és a WPF automatikusan szinkronizálja mindkét oldalt. Például:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
A WPF négy kötési módot támogat:
- Egyirányú: A vezérlő frissül, amikor a forrásadatok megváltoznak
- Kétirányú: A változások mindkét irányban áramlanak a vezérlés és a forrás között
- Egykori: A vezérlő csak egyszer olvassa be a forrásértéket, betöltéskor.
- EgyirányúForrás: A vezérlés a forráshoz küldi az értékét, soha nem fordítva.
Az adatkötés a motorja az MVVM (Model-View-ViewModel) minta mögött is, amely a professzionális WPF alkalmazások leggyakoribb architektúrája, mivel lehetővé teszi, hogy a nézet XAML-ben maradjon, míg a logika tesztelhető C# osztályokban található.
💡 Tipp: Implementáld az INotifyPropertyChanged interfészt az adatosztályaidon. Enélkül a felhasználói felület nem frissül, amikor a tulajdonságok értékei megváltoznak a kódban.
WPF telepítés
A WPF telepítéséhez kattintson ide: https://www.guru99.com/download-install-visual-studio.html
A WPF alkalmazás bemutatójának következő részében az első WPF alkalmazásunkat fogjuk felépíteni.
Hogyan lehet létrehozni az első WPF alkalmazást?
Ebben a WPF példában egy alapvető WPF alkalmazást fogunk fejleszteni. Kezdjük az egyszerű megvalósítást az alábbi WPF alkalmazáspéldában megadott lépések követésével.
Step 1) A Visual Studioban lépjen a Fájl > Új > Projekt menüpontra.
Step 2) Az új projekt ablakban
- Válassza a WPF alkalmazást
- Írja be a nevet „MyWPF”-ként
- kattintson az OK gombra
Step 3) A Visual Studio alapértelmezés szerint két fájlt hoz létre
- XAML fájl (MainWindow.xaml)
- CS-fájl (MainWindow.xaml.cs)
A MainWindow.xaml rendelkezik
- Tervező ablak
- XAML fájl
Az XAML ablakban alapértelmezés szerint a következő címkék jelennek meg:
Alapértelmezés szerint a rács az első elem.
A MainWindow.xaml.cs tartalmazza a XAML tervfájlhoz tartozó megfelelő kódot:
Step 4) Az eszköztárban
- Húzza a szövegetBox elemet a tervezőablakba
- Egy szövegBox megjelenik a tervezőablakban
- Látni fogja a szöveg XAML kódjátBox hozzáadott
Step 5) Módosítsa a szöveget „Első WPF program”-ra.
Step 6) Kattintson a Start gombra
Step 7) Egy ablakot fogsz látni a kimenetben
Gratulálunk! Megtervezte és létrehozta első WPF alkalmazását. A következő WPF kezdőknek oktatóanyagban látni fogjuk a különbséget a WPF és a WinForms között.
WPF vs. WinForms
| WPF | WinForms |
|---|---|
| Ez egy újabb keretrendszer, így jobban illeszkedik a jelenlegi szabványokhoz. | Régebbi, ezért jobban bevált. |
| Rugalmas és funkciókban gazdag. Nagyon gazdag alkalmazásokat tervezhet kódolás vagy vezérlők vásárlása nélkül. | Nem túl funkciókban gazdag |
| 3 fejlesztőird A pártvezérlés a WPF-fel való kompatibilitásra összpontosít, mivel ez a jövő. | Számos harmadik féltől származó vezérlő található, amelyeket ingyenesen vásárolhat vagy szerezhet be. |
| Az XAML lehetővé teszi a grafikus felhasználói felület egyszerű létrehozását és szerkesztését. Lehetővé teszi a munka megosztását egy tervező (XAML) és egy programozó (C#, VB.NET stb.) között. | In Windows Űrlapok, az összes kód egy helyen van írva. |
| Az XAML ismeretek közvetlenül átvihetők újabb keretrendszerekbe, mint például a WinUI 3, a .NET MAUI és az Avalonia UI. | A WinForms készségek főként a klasszikus nyelvekre vonatkoznak. Windows asztali fejlesztés. |
| A WPF beépített vezérlőkészlete korlátozott | A beépített vezérlők nagyon hatékonyak |
WPF-el épített alkalmazások típusai
- A WPF önálló működésre szolgál Windows asztali alkalmazások, például vállalati üzletági eszközök, irányítópultok, kereskedési terminálok és tervezőszoftverek
- Windows Az űrlapok és a WPF-oldalak együtt létezhetnek ugyanabban az alkalmazásban
- Oldal/ablak navigáció stílusú alkalmazásokat fejleszthetsz
WPF a Modern .NET-ben
Microsoft 2018 decemberében nyílt forráskódúvá tette a WPF-et, és a .NET Core 3.0 (2019) óta a keretrendszer minden modern .NET kiadással együtt érkezett, egészen a .NET 10-ig bezárólag. Egy alkalmazás modern .NET-re való átállítása gyorsabb indítást, egyszerűbb telepítést eredményez az önálló közzététel révén, és hozzáférést biztosít a jelenlegi C# nyelvi funkciókhoz, miközben a WPF programozási modell változatlan marad.
WPF marad Windows-csak. Ha ma asztali keretrendszert választasz, ez az összehasonlítás segít:
| Keretrendszer | Legmegfelelőbb |
|---|---|
| WPF | Érett, funkciókban gazdag Windows asztali alkalmazások hatalmas ökoszisztémával |
| WindowsUI 3 | Új alkalmazások, amelyek a modern kort célozzák meg Windows 11 megjelenés és érzet |
| .NET MAUI | Többplatformos alkalmazások, amelyek átfogóak Windows, macOS, Android, és iOS |
Mivel a WPF-et aktívan karbantartják és mélyen beágyazzák a vállalati szoftverekbe, a megtanulása továbbra is praktikus befektetés. Miután már magabiztosan fejleszti ezeket az alkalmazásokat, érdemes gyakorolni a leggyakoribbakat. WPF interjúkérdések olyan fogalmak rögzítésére, mint az XAML, az adatkötés és a vizuális fa.









