WPF-i õpetus algajatele

⚡ Nutikas kokkuvõte

WPF (Windows Esitlus Foundation) on Microsoftraamistik rikkaks saamiseks Windows töölauarakendused. Algajad õpivad, kuidas XAML, andmete sidumine ja riistvarakiirendusega graafika koos loovad skaleeritavaid ja visuaalselt rikkalikke kasutajaliideseid väiksema koodikuluga.

  • 🧭 Foundation: WPF on vektoripõhine, DirectX-il põhinev kasutajaliidese raamistik .NET platvormi sees.
  • 🎨 XAML-märgistus: Deklaratiivne XML-süntaks eraldab liidese disaini C# äriloogikast.
  • 🧱 ArchiStruktuur: PresentationFramework, PresentationCore ja Milcore teevad renderdamiseks DirectX-i kohal koostööd.
  • 🔗 Andmete sidumine: Sisseehitatud sidumine ühendab juhtelemendid andmeallikatega ja annab jõudu MVVM-mustrile.
  • 🛠️ Praktiline algus: Visual Studio mallid võimaldavad teil luua ja käivitada esimese WPF-rakenduse seitsme sammuga.
  • 🚀 Kaasaegne asjakohasus: WPF on avatud lähtekoodiga ja sellel on pikaajaline tugi .NET 10-ga.

WPF-i õpetus algajatele

Mis on WPF?

WPF on ehitamise raamistik Windows rakendused, mis võimaldavad arendajatel luua rikkalikke kasutajaliideseid 3D-animatsioonide ja rikkalike värvidega, kasutades väiksemat koodi keerukust. See on vektoripõhine renderdusmootor, mis kasutab tänapäevaste graafikakaartide riistvaralist kiirendust, mis muudab kasutajaliidese kiiremaks ja väga skaleeritavaks. WPF tähistab Windows Esitlus Foundation.

WPF-i võib pidada WinForms'i edasiarenduseks. See pakub hõlpsasti kasutatavat graafilist kuvamissüsteemi Windows ja pakub selget lahusust kasutajaliidese ja äriloogika vahel.

WPF-rakendusi juurutatakse tavaliselt eraldiseisvate töölauaprogrammidena ja neid saab majutada ka manusobjektidena teistes rakendustes.

Miks WPF?

WPF-platvormi kasutamiseks on palju põhjuseid. Mõned silmapaistvamad neist on:

  • Ideaalne platvorm, mida kasutada, kui vajate tegeleda erinevate meediumitüüpidega
  • WPF võimaldab teil luua kasutajaliidese. See aitab teid ka siis, kui peate laadima osa kasutajaliidesest või soovite siduda XML-andmeid.
  • See võimaldab teil ära kasutada suure .NET-klassi raamatukogu eeliseid, nagu see on üles ehitatud .NET tehnoloogia
  • Resolutsioonist sõltumatu, seega saavad WPF-i abil loodud rakendused töötada väikestel tahvelarvutite ekraanidel või 20-tollistel monitoridel
  • WPF tugineb WinAPI asemel DirectX-ile. See kasutab kliendiarvuti graafikasüsteemi, pakkudes seega suuremat graafilise renderdamise võimsust.
  • Toetab voodokumentide mudelit, mis võimaldab küljenduse kvaliteeti, mis on sarnane töölaual avaldamise omaga.
  • Välimus ja käitumine on omavahel lõdvalt seotud. See võimaldab disaineritel ja arendajatel töötada kahe eraldi mudeli kallal.
  • WPF-raamistikus saate tööriistu graafiliselt kujundada lihtsate XML-dokumentide abil, selle asemel et koodi parsida.
  • Võimaldab parema jõudluse tagamiseks kasutada GUI joonistamiseks riistvaralist kiirendust

Järgmisena vaatame, kuidas raamistik aja jooksul on arenenud.

WPF-i ajalugu

Windows 1.0 oli esimene GUI keskkond MicrosoftSee toimis DOS-i peal asuva kihina, tuginedes graafika ja kasutajaliidese jaoks GDI ja USER süsteemidele.

DirectX võeti kasutusele 1995. aastal kui suure jõudlusega graafikasüsteem, mis oli suunatud mängudele ja muudele graafikaga seotud keskkondadele. Aastate jooksul anti välja palju versioone ja DirectX 9 pakkus teeki, mida sai kasutada hallatud .NET-koodiga.

WPF versioon Vabastamise aasta .Neti versioon Visual Studio versioon FUNKTSIOONID
3.0 2006 3.0 N / A Esialgne väljalase.
WPF-i saab aga arendada VS 2005-ga.
3.5 2007 3.5 USA 2008 Muudatused ja täiustused:
Rakendusmudel, sidumine, juhtelemendid, dokumendid, märkused ja 3D-kasutajaliidese elemendid.
3.5 SP1 2008 3.5 SP1 N / A Native splash screen tugi. Uus veebibrauseri juhtimine, DirectX pixel shaderi tugi.
4.0 2010 4.0 USA 2010 Uued juhtnupud: kalender, andmevõrk, kuupäevavalija. Mitmikpuute ja manipuleerimise tugi.
4.5 2012 4.5 USA 2012 Kiirem käivitamine, parem jõudlus suurte andmekogumite kuvamisel.
Uus lindi juhtelement ja INotifyDataErrorInfo liides andmete valideerimiseks.
4.5.1 2013 4.5.1 USA 2013 Väiksemad jõudluse ja töökindluse parandused.
4.5.2 2014 4.5.2 NA Olulist muudatust pole
4.6 2015 4.6 USA 2015 Läbipaistev lasteakna tugi
HDPI ja Touch täiustused
4.8 2019 4.8 USA 2019 Viimane suurem .NET Frameworki väljalase koos kõrge DPI paranduste ja ligipääsetavuse täiustustega.
.NET Core 3.0 ja hilisemad versioonid 2019 - kohal .NET Core 3.0 versioonilt .NET 10-le VS 2019/2022 WPF-ist saab avatud lähtekoodiga tarkvara ja see tuleb koos moodsa .NET-iga (rakendused jäävad alles) Windows-ainult).

WPF-i ei versioonitata enam .NET-ist eraldi. Alates 2019. aastast on see saadaval tänapäevase .NET-platvormi avatud lähtekoodiga komponendina ning praegune versioon on kaasas .NET 10-ga, mis saabus 2025. aasta novembris pikaajalise toe (LTS) versioonina.

WPF-i omadused

Allolev diagramm koondab peamised WPF-i võimalused, mis on üksikasjalikumalt loetletud selle järel.

WPF-i omadused
WPF-i omadused
  • Dokumendid ja trükkimine
  • Turvalisus, juurdepääsetavus ja lokaliseerimine
  • Pakub koostalitlusvõimet Windows Vormide juhtelemendid
  • Direct3D-i kasutatakse graafilistes rakendustes, kus jõudlus on oluline
  • Kasutab renderdamiseks videokaardi riistvara
  • Vektorgraafika võimaldab teil rakendust skaleerida ilma kvaliteeti kaotamata.
  • WPF toetab ujukoma loogilise pikslisüsteemi ja 32-bitist ARGB värvisüsteemi
  • Stiilide ja juhtmallide uuesti määratlemine
  • Rahvusvaheliste fontide loomine liitfondidest
  • WPF-i teksti renderdamine kasutab ära ClearType'i tehnoloogiat
  • Võimaldab kasutada videomälus eelrenderdatud teksti vahemällu salvestamise tehnikat
  • Ressursipõhine lähenemine igale kontrollile
  • Esitluse taimerid lähtestab ja haldab WPF
  • Toetatud on ka video ja animatsiooni suhe
  • WPF-is on stiil omaduste kogum, mida tuleks rakendada visuaalseks renderdamiseks kasutatavale sisule.
  • WPF-i mallid aitavad teil muuta oma dokumendi kasutajaliidest
  • Käsklused on kõhulihastega.tract ja sündmuste lõdvalt seotud versioon
  • WPF-i käskude tugi vähendab kirjutatava koodi hulka

Järgmine selles WPF-is C# õpetus, õpime tundma WPF-i tuumatüüpe ja infrastruktuuri.

WPF-i põhitüübid ja infrastruktuurid

WPF klassid jagunevad nelja erinevasse tüüpi:

  • UIEelement
  • FrameworkElement
  • Sisuelement
  • FrameworkContentElement

Neid klasse nimetatakse baaselemendi klassideks. Need pakuvad aluse kasutajaliideste koostamise mudelile.

WPF-i kasutajaliidesed koosnevad elementidest, mis on kokku pandud puustruktuuri, mida nimetatakse elementide puuks. Elementide puu on intuitiivne viis kasutajaliideste paigutuseks ja see on struktuur, mille kaudu saate võimsaid kasutajaliidese teenuseid.

XML

Laiendatav rakenduste märgistuskeel (XAML) ehk `XAML` (hääldatakse `zammel`) on deklaratiivne viis kasutajaliideste määratlemiseks.

Siin on lihtsa nupu XAML-i määratlus:

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

XAML-keele kasutamise eelised:

  • XAML eraldab esiotsa välimuse tagaotsa loogikast
  • XAML on lihtsaim viis kasutajaliideste esitamiseks
  • XAML töötab tõhusalt disainitööriistadega

Juhtimine

WPF-i raamistik toetab paljusid kasulikke juhtelemente, näiteks:

  • Redigeerimise juhtelemendid, nagu tekstBox, KontrollimaBox, raadionupp
  • Loendi juhtelemendid, näiteks loendBox, loendivaade, puuvaade
  • Kasutajateave, näiteks silt, WPF-i edenemisriba, tööriistavihje
  • Toiming, nagu menüü, nupp ja tööriistariba
  • Välimused, nagu ääris, WPF-pilt ja vaatekast
  • Levinud dialoogiboksid, näiteks OpenFileDialog ja PrintDialog
  • Konteinerid nagu TabControl, ScrollBar ja GroupBox
  • Paigutused nagu DockPanel, StackPanel ja Grid
  • Navigeerimine, näiteks raam ja hüperlink

Juhtelementide välimust saab kohandada stiilide ja mallidega ilma programmeerimiseta. Samuti saate luua kohandatud juhtelemendi, tuletades uue klassi sobivast baasklassist.

Välimus

WPF pakub funktsiooni teie rakenduse välimuse kohandamiseks. See võimaldab teil määrata objekte ja väärtusi sellistele asjadele nagu fondid, taustad jne.

Stiilide funktsioon võimaldab teil standardida kogu toote konkreetse välimuse järgi. See võimaldab teil vaikevälimust asendada, säilitades samal ajal selle vaikekäitumise.

Andmemall võimaldab teil juhtida seotud andmete vaikesätete visualiseerimist. Teemade abil saate hõlpsalt rakendada operatsioonisüsteemi visuaalseid stiile.

Paigutus ja paneelid

Paigutus aitab teil juhtelemente õigesti paigutada ja suurust muuta. See on osa kasutajale esitluse koostamise protsessist. WPF-raamistik lihtsustab paigutusprotsessi ja pakub kasutajaliidese välimuse paremat kohandatavust.

Paigutuse infrastruktuuri pakuvad viis peamist klassi: 1) StackPanel, 2) DockPanel, 3) WrapPanel, 4) Grid ja 5) Canvas

Graafika

WPF pakub täiustatud graafikasüsteemi:

  • WPF kasutab seadmest sõltumatuid ühikuid, mis võimaldab eraldusvõimet ja seadmest sõltumatust. Iga seadmest sõltumatu piksel skaleerub automaatselt süsteemi punkti tolli kohta seadistusega.
  • WPF kasutab ujuva asemel topelt ja toetab laiemat värvivalikut
  • WPF-i graafikamootor on konstrueeritud nii, et see saab võimalusel ära kasutada graafika riistvara

Dokumendid ja trükkimine

WPF-raamistik pakub kolme tüüpi dokumente:

  • Fikseeritud dokumendid: Seda tüüpi dokument toetab WY-dSIWYG esitlus.
  • Vooludokumendid: Võimaldab teil sisu reguleerida ja ümber joosta käitusaja muutujate (nt akna suurus ja seadme eraldusvõime) alusel.
  • XPS dokumendid: Elektroonilise dokumendi lehekülgede kaupa esitus XML-põhises vormingus. XPS on avatud ja standardiseeritud dokumendivorming.

WPF võimaldab paremat kontrolli printimissüsteemi üle, sealhulgas kaugprintimise ja järjekordade üle. Lisaks saab XPS-dokumente otse printida ilma neid printimisvormingusse teisendamata.

Kui ehitusplokid on kaetud, vaatame, kuidas need tükid sisemiselt kokku sobivad.

WPF Architektuur

WPF on osa .NET raamistikust. See sisaldab nii hallatavat kui ka mittehallatavat koodi. WPF arhitektuuri olulised komponendid on selgitatud alloleval joonisel:

WPF Architektuur

WPF Architektuur

WPF arhitektuuri komponendid

  • PresentationFramework: Aitab luua tipptasemel elemente, nagu juhtelemendid, stiilid, paigutus, aknad jne.
  • PresentationCoreSee sisaldab baastüüpe nagu UIElement ja Visual, millest tuletatakse kõik PresentationFramework.dll-i juhtelemendid ja kujundid.
  • CLR: see muudab arendusprotsessi produktiivseks, pakkudes selliseid funktsioone nagu mäluhaldus, vigade käsitlemine jne.
  • Milcore: Milcore on osa mittehallatavast koodist, mis pakub tihedat integratsiooni DirectX-iga.
  • DirectX: See on madala taseme API, mis renderdab WPF-i graafikat. DirectX suhtleb draiveritega ja renderdab sisu.
  • Kasutaja32: See on põhiline API, mida paljud programmid laialdaselt kasutavad. See haldab mälu ja protsesside eraldamist. User32 aitab teil otsustada, milline element ekraanil kuhu paigutada.
  • kernel: Sisend pärineb signaalina kerneli režiimi seadme draiverist ja suunatakse õigele protsessile ühenduse loomisel Windows kernel ja kasutaja32.

WPF-i andmete sidumine

Andmete sidumine on WPF-is üks võimsamaid kontseptsioone. Koodi kirjutamise asemel, mis käsitsi kopeerib väärtusi juhtelementide ja objektide vahel, deklareeritakse XAML-is ühendus ja WPF hoiab mõlemad pooled automaatselt sünkroniseerituna. Näiteks:

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

WPF toetab nelja sidumisrežiimi:

  • Ühesuunaline: Juhtelement värskendatakse lähteandmete muutumisel
  • Kahesuunaline: Muutused voolavad mõlemas suunas juhtimise ja allika vahel
  • Ühekordne: Juhtseade loeb allika väärtust ainult üks kord, laadimise ajal
  • ÜksSuundAllikani: Juhtimisseade saadab oma väärtuse allikale, mitte kunagi vastupidi

Andmete sidumine on ka MVVM-i (Model-View-ViewModel) mustri mootor, mis on professionaalsete WPF-rakenduste kõige levinum arhitektuur, kuna see võimaldab vaatel jääda XAML-i, samas kui loogika elab testitavates C#-klassides.

💡 Näpunäide: Rakenda oma andmeklassides liides INotifyPropertyChanged. Ilma selleta ei värskenda kasutajaliides omaduste väärtuste muutumisel koodis.

WPF installimine

WPF-i installimiseks vaadake seda linki: https://www.guru99.com/download-install-visual-studio.html

Järgmisena selles WPF-i rakenduse õpetuses ehitame oma esimese WPF-i rakenduse.

Kuidas luua oma esimene WPF-rakendus?

Selles WPF-i näites arendame lihtsat WPF-i rakendust. Alustame lihtsat juurutamist allpool WPF-i rakenduse näites toodud samme järgides.

Step 1) Visual Studios minge menüüsse Fail > Uus > Projekt

Visual Studio failimenüü, kus kuvatakse suvand Uus projekt

Step 2) Uues projekti aknas

  1. Valige WPF rakendus
  2. Sisestage nimi kui "MyWPF"
  3. OK

Uus projektiaken valitud WPF-i rakenduse malliga

Step 3) Visual Studio loob vaikimisi kaks faili

  • XAML-fail (MainWindow.xaml)
  • CS-fail (MainWindow.xaml.cs)

Lahenduste uurija, mis kuvab faile MainWindow.xaml ja MainWindow.xaml.cs

MainWindow.xaml on

  1. Disain aken
  2. XAML fail

MainWindow.xaml kujundusaken ja XAML-redaktor Visual Studios

XAML-aknas kirjutatakse vaikimisi järgmised sildid:

Uue WPF-akna jaoks genereeritud vaikimisi XAML-sildid

Grid on vaikimisi esimene element.

MainWindow.xaml.cs sisaldab XAML-i disainifaili vastavat koodi:

WPF-akna koodifail MainWindow.xaml.cs

Step 4) Tööriistakastis

  1. Lohistage tekstiBox element kujundusaknasse
  2. A TekstBox kuvatakse kujundusaknas
  3. Näete teksti jaoks XAML-koodiBox lisatud

Teksti lohistamineBox tööriistakastist WPF-i disainiaknasse

Step 5) Muutke tekst „Esimene WPF-programm”.

Teksti redigeerimineBox tekstiomadus esimesele WPF-programmile

Step 6) Klõpsake nuppu Start

Visual Studio Start nupp WPF-i rakenduse käivitamiseks

Step 7) Väljundis näete akent

WPF-i rakenduse käivitamise aken, kus kuvatakse tekst „Esimene WPF-programm”

Palju õnne! Olete kujundanud ja loonud oma esimese WPF-rakenduse. Järgmisena selles algajatele mõeldud WPF-i õpetuses näeme WPF-i ja WinFormsi erinevust.

WPF vs WinForms

WPF WinForms
See on uuem raamistik, seega on see praeguste standarditega paremini kooskõlas. See on vanem, nii et seda on rohkem proovitud ja testitud.
See on paindlik ja funktsiooniderikas. Saate kujundada väga rikkalikke rakendusi ilma kodeerimise või juhtelementide ostmiseta. Mitte nii funktsiooniderikas
3 arendajadrd Parteikontrollid keskenduvad ühilduvusele WPF-iga, kuna see on tulevik. On palju kolmanda osapoole juhtelemente, mida saate tasuta osta või hankida.
XAML võimaldab teil hõlpsalt oma graafilist kasutajaliidest luua ja redigeerida. See võimaldab töö jagada disaineri (XAML) ja programmeerija (C#, VB.NET jne) vahel. In Windows Vormid, kogu kood on kirjutatud ühes kohas.
XAML-oskused kanduvad otse üle uuematesse raamistikesse, näiteks WinUI 3, .NET MAUI ja Avalonia UI. WinForms oskused kehtivad peamiselt klassikalistes rakendustes. Windows töölaua arendus.
WPF-i kastisisene juhtkomplekt on piiratud Kastisisesed juhtnupud on väga võimsad

WPF-iga loodud rakenduste tüüp

  • WPF-i kasutatakse eraldiseisva tarkvarana. Windows töölauarakendused, näiteks ettevõtte ärivaldkonna tööriistad, armatuurlauad, kauplemisterminalid ja disainitarkvara
  • Windows Vormid ja WPF-lehed võivad samas rakenduses koos eksisteerida
  • Saate arendada lehe/akna navigeerimise stiilis rakendusi

WPF kaasaegses .NET-is

Microsoft avatud lähtekoodiga WPF-i 2018. aasta detsembris ja alates .NET Core 3.0-st (2019) on raamistik kaasas olnud iga moodsa .NET-i väljaandega kuni .NET 10-ni (kaasa arvatud). Rakenduse üleviimine moodsasse .NET-i toob kaasa kiirema käivitamise, lihtsama juurutamise iseseisva avaldamise kaudu ja juurdepääsu praegustele C# keele funktsioonidele, samas kui WPF-i programmeerimismudel jääb samaks.

WPF jääb alles Windows-ainult. Kui valite täna töölaua raamistikku, on see võrdlus abiks:

Raamistik Parim
WPF Küps, funktsiooniderikas Windows tohutu ökosüsteemiga töölauarakendused
WindowsUI 3 Uued rakendused, mis on suunatud tänapäevale Windows 11 välimus ja tunne
.NET MAUI Platvormideülesed rakendused, mis hõlmavad Windows, macOS, Androidja iOS

Kuna WPF-i hallatakse aktiivselt ja see on ettevõtte tarkvarasse sügavalt integreeritud, on selle õppimine praktiline investeering. Kui olete nende rakenduste loomisel mugav, tasub harjutada kõige levinumaid meetodeid. WPF-i intervjuuküsimused et lukustada selliseid kontseptsioone nagu XAML, andmete sidumine ja visuaalne puu.

KKK

Liidese kujundamiseks on vaja XAML-i ja rakenduse loogika jaoks C#-d (või VB.NET-i). Objektorienteeritud programmeerimise ja .NET-klassiteegi põhiteadmised muudavad WPF-i õppimise palju lihtsamaks.

Ei. WPF sõltub DirectX-ist ja Windows API-d, seega töötab see ainult WindowsPlatvormideülese XAML-i arenduse puhul kaaluge Avalonia kasutajaliides or .NET MAUI.

Jah. Tööriistad nagu GitHubi koopia oskab kommentaaridest genereerida XAML-paigutusi, sidumisavaldisi ja stiile, mis kiirendab õppimist ja vähendab algajate jaoks korduvat märgistust.

Saate integreerida ML.NET kohaliku masinõppe või kõnepilve tehisintellekti teenuste jaoks, näiteks Azure OpenAI oma C# koodist ja seejärel kuva tulemusi standardse WPF-i andmesidumisega.

Jah. WPF on MIT-litsentsi alusel avatud lähtekoodiga ja Visual Studio Community Editioniga saab rakendusi tasuta luua.

Võta see postitus kokku järgmiselt: