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.

  • 🧭 Foundation: A WPF egy vektor alapú, DirectX-alapú felhasználói felület keretrendszer a .NET platformon belül.
  • 🎨 XAML jelölés: A deklaratív XML szintaxis elválasztja az interfésztervezést a C# üzleti logikától.
  • 🧱 Architectúra: A PresentationFramework, a PresentationCore és a Milcore a DirectX felett együttműködve renderelnek.
  • 🔗 Adatkötés: A beépített kötés a vezérlőket adatforrásokhoz köti, és működteti az MVVM mintát.
  • 🇧🇷 Gyakorlati kezdés: A Visual Studio sablonok segítségével hét lépésben felépíthetsz és futtathatsz egy első WPF alkalmazást.
  • 🚀 Modern aktualitás: A WPF nyílt forráskódú, és hosszú távú támogatással rendelkezik a .NET 10-zel együtt.

WPF oktatóanyag kezdőknek

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.

A WPF jellemzői
A WPF jellemzői
  • 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:

WPF Architectúra

WPF Architectúra

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.

A Visual Studio Fájl menüje az Új projekt opciót mutatja

Step 2) Az új projekt ablakban

  1. Válassza a WPF alkalmazást
  2. Írja be a nevet „MyWPF”-ként
  3. kattintson az OK gombra

Új projektablak kiválasztott WPF alkalmazássablonnal

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)

Megoldáskezelő, amely a MainWindow.xaml és MainWindow.xaml.cs fájlokat mutatja

A MainWindow.xaml rendelkezik

  1. Tervező ablak
  2. XAML fájl

MainWindow.xaml tervezőablak és XAML szerkesztő a Visual Studio-ban

Az XAML ablakban alapértelmezés szerint a következő címkék jelennek meg:

Új WPF ablakhoz generált alapértelmezett XAML címkék

Alapértelmezés szerint a rács az első elem.

A MainWindow.xaml.cs tartalmazza a XAML tervfájlhoz tartozó megfelelő kódot:

A WPF ablak MainWindow.xaml.cs kódmögötti fájlja

Step 4) Az eszköztárban

  1. Húzza a szövegetBox elemet a tervezőablakba
  2. Egy szövegBox megjelenik a tervezőablakban
  3. Látni fogja a szöveg XAML kódjátBox hozzáadott

Szöveg húzásaBox az eszköztárból a WPF tervezőablakába

Step 5) Módosítsa a szöveget „Első WPF program”-ra.

Szöveg szerkesztéseBox text tulajdonság az első WPF programhoz

Step 6) Kattintson a Start gombra

Visual Studio Start gomb a WPF alkalmazás futtatásához

Step 7) Egy ablakot fogsz látni a kimenetben

WPF alkalmazás futtatása ablakban, amelyen az Első WPF program szöveg látható

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.

GYIK

XAML-re van szükséged a felület megtervezéséhez, C#-ra (vagy VB.NET-re) pedig az alkalmazáslogikához. Az objektumorientált programozás és a .NET osztálykönyvtár alapismeretei sokkal könnyebbé teszik a WPF elsajátítását.

Nem. A WPF a DirectX-től függ, és Windows API-kon keresztül fut, így csak ezeken fut WindowsPlatformfüggetlen XAML fejlesztés esetén érdemes megfontolni a következőket: Avalonia felhasználói felület or .NET MAUI.

Igen. Olyan eszközök, mint GitHub másodpilóta XAML elrendezéseket, kötési kifejezéseket és stílusokat generálhat megjegyzésekből, ami felgyorsítja a tanulást és csökkenti az ismétlődő jelöléseket a kezdők számára.

Tud integrálni ML.NET helyi gépi tanuláshoz vagy felhőalapú AI-szolgáltatásokhoz, például Azure OpenAI-t használsz a C# kódodból, majd megjeleníted az eredményeket szabványos WPF adatkötéssel.

Igen. A WPF nyílt forráskódú az MIT licenc alatt, és ingyenesen fejleszthetsz alkalmazásokat a Visual Studio Community Edition segítségével.

Foglald össze ezt a bejegyzést a következőképpen: