WPF-opplæring for nybegynnere
⚡ Smart oppsummering
WPF (Windows Presentasjon Foundation) er Microsofts rammeverk for å bygge rike Windows skrivebordsapplikasjoner. Nybegynnere lærer hvordan XAML, databinding og maskinvareakselerert grafikk kombineres for å lage skalerbare, visuelt rike brukergrensesnitt med mindre kode.

Hva er WPF?
WPF er et rammeverk for å bygge Windows applikasjoner som lar utviklere lage rike brukergrensesnitt med 3D-animasjoner og rike farger med mindre kodekompleksitet. Det er en vektorbasert renderingsmotor som bruker maskinvareakselerasjonen til moderne grafikkort, noe som gjør brukergrensesnittet raskere og svært skalerbart. WPF står for Windows Presentasjon Foundation.
WPF kan betraktes som en videreutvikling av WinForms. Det tilbyr et brukervennlig grafisk visningssystem for Windows og tilbyr et rent skille mellom brukergrensesnitt og forretningslogikk.
WPF-applikasjoner distribueres vanligvis som frittstående skrivebordsprogrammer, og de kan også driftes som innebygde objekter i andre applikasjoner.
Hvorfor WPF?
Det er mange grunner til å bruke WPF-plattformen. Noen fremtredende er:
- En ideell plattform å bruke hvis du trenger å håndtere ulike medietyper
- WPF lar deg lage et brukergrensesnitt med et skinn. Det hjelper deg også når du trenger å laste inn en del av brukergrensesnittet eller ønsker å binde XML-data.
- Den lar deg dra nytte av det store .NET-klassebiblioteket slik det er bygget på .NET-teknologi
- Oppløsningsuavhengighet, slik at applikasjoner utviklet med WPF kan kjøre på små nettbrettskjermer eller en 20-tommers skjerm
- WPF bygger på DirectX i stedet for WinAPI. Den bruker klientdatamaskinens grafikksystem, og tilbyr derfor større grafikkgjengivelseskraft.
- Støtter en flytdokumentmodell som muliggjør layout med «desktop publishing»-kvalitet
- Utseende og oppførsel er løst koblet sammen. Dette lar designere og utviklere jobbe med to separate modeller
- I WPF-rammeverket kan du grafisk designe verktøy ved hjelp av enkle XML-dokumenter i stedet for å analysere kode.
- Lar deg bruke maskinvareakselerasjon for å tegne GUI, for bedre ytelse
La oss deretter se på hvordan rammeverket har utviklet seg over tid.
Historien til WPF
Windows 1.0 var det første GUI-miljøet fra MicrosoftDet fungerte som et lag oppå DOS, og var avhengig av GDI- og USER-systemene for grafikk og brukergrensesnitt.
DirectX ble introdusert i 1995 som et grafikksystem med høy ytelse rettet mot spill og andre grafikkrelaterte miljøer. Gjennom årene ble det utgitt mange versjoner, og DirectX 9 ga et bibliotek som kunne brukes med administrert .NET-kode.
| WPF versjon | Utgivelsesår | .Net-versjon | Visual Studio-versjon | Funksjoner |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | N / A | Første utgivelse. Imidlertid kan WPF-utvikling gjøres med VS 2005. |
| 3.5 | 2007 | 3.5 | SV 2008 | Modifikasjoner og forbedringer i: Applikasjonsmodell, binding, kontroller, dokumenter, merknader og 3D-grensesnittelementer. |
| 3.5 SP1 | 2008 | 3.5 SP1 | N / A | Native splash-skjermstøtte. Ny nettleserkontroll, støtte for DirectX pixel shader. |
| 4.0 | 2010 | 4.0 | SV 2010 | Nye kontroller: Kalender, DataGrid, DatePicker. Støtte for flerberøring og manipulering. |
| 4.5 | 2012 | 4.5 | SV 2012 | Raskere oppstart, forbedret ytelse ved visning av store datasett. Ny båndkontroll og INotifyDataErrorInfo-grensesnitt for datavalidering. |
| 4.5.1 | 2013 | 4.5.1 | SV 2013 | Mindre forbedringer av ytelse og pålitelighet. |
| 4.5.2 | 2014 | 4.5.2 | NA | Ingen større endring |
| 4.6 | 2015 | 4.6 | SV 2015 | Gjennomsiktig støtte for barnevinduer HDPI og Touch forbedringer |
| 4.8 | 2019 | 4.8 | SV 2019 | Siste store .NET Framework-utgivelse, med rettelser for høy DPI og forbedringer av tilgjengelighet. |
| .NET Core 3.0 og utover | 2019-liggende | .NET Core 3.0 til .NET 10 | VS 2019/2022 | WPF blir åpen kildekode og leveres med moderne .NET (applikasjoner forblir Windows-bare). |
WPF versjoneres ikke lenger separat fra .NET. Siden 2019 har det blitt levert som en åpen kildekode-komponent i den moderne .NET-plattformen, og den nåværende utgivelsen er inkludert i .NET 10, som kom i november 2025 som en langsiktig støtteversjon (LTS).
Funksjoner av WPF
Diagrammet nedenfor grupperer de viktigste WPF-funksjonene, og er listet opp i detalj etter det.

- Dokumenter og utskrift
- Sikkerhet, tilgjengelighet og lokalisering
- Tilbyr interoperabilitet med Windows Skjemakontroller
- Direct3D brukes i grafiske applikasjoner hvor ytelse er viktig
- Bruker skjermkortets maskinvare for gjengivelse
- Vektorbasert grafikk lar deg skalere applikasjonen din uten tap av kvalitet
- WPF støtter et flyttallslogisk pikselsystem og 32-bits ARGB-farge
- Redefiner stiler og kontrollmaler
- Bygge internasjonale fonter fra sammensatte fonter
- WPF-tekstgjengivelse utnytter ClearType-teknologi
- Lar deg bruke bufringsteknikken for forhåndsgjengitt tekst i videominnet
- Ressursbasert tilnærming for hver kontroll
- Presentasjonstidtakere initialiseres og administreres av WPF
- Forholdet mellom video og animasjon støttes også
- I WPF er en stil et sett med egenskaper som skal brukes på innhold som brukes til visuell gjengivelse.
- Maler i WPF hjelper deg med å endre brukergrensesnittet til dokumentet ditt.
- Kommandoer er mer abstract og løst koblet versjon av hendelser
- WPF-støtte for kommandoer reduserer mengden kode vi trenger å skrive
Neste i denne WPF C# opplæring, vil vi lære om WPF-kjernetyper og infrastruktur.
WPF kjernetyper og infrastrukturer
Klasser i WPF er delt inn i fire forskjellige typer:
- UIElement
- FrameworkElement
- ContentElement
- FrameworkContentElement
Disse klassene er kjent som basiselementklasser. De danner grunnlaget for en modell for å komponere brukergrensesnitt.
WPF-brukergrensesnitt er satt sammen av elementer som er satt sammen i et trehierarki kalt elementtreet. Elementtreet er en intuitiv måte å legge ut brukergrensesnitt på, og det er strukturen du får kraftige brukergrensesnitttjenester gjennom.
XAML
Extensible Application Markup Language, som kalles «XAML» (uttales «zammel»), er en deklarativ måte å definere brukergrensesnitt på.
Her er XAML-definisjonen av en enkel knapp:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Fordeler med å bruke XAML-språket:
- XAML skiller frontend-utseende fra backend-logikk
- XAML er den enkleste metoden for å representere brukergrensesnitt
- XAML fungerer effektivt med designverktøy
Kontroller
WPF-rammeverket støtter mange nyttige kontroller som:
- Redigeringskontroller som TekstBox, Kryss avBox, Radioknapp
- Listekontroller som ListBox, Listevisning, Trevisning
- Brukerinformasjon som Label, WPF ProgressBar, ToolTip
- Handling som meny, knapp og verktøylinje
- Utseende som Border, WPF Image og Viewbox
- Vanlige dialogbokser som OpenFileDialog og PrintDialog
- Beholdere som TabControl, ScrollBar og GroupBox
- Oppsett som DockPanel, StackPanel og Grid
- Navigering som Frame og Hyperlink
Utseendet til kontroller kan tilpasses med stiler og maler uten programmering. Du kan også opprette en egendefinert kontroll ved å utlede en ny klasse fra en passende basisklasse.
Utseende
WPF har en funksjon for å tilpasse utseendet til applikasjonen din. Den lar deg angi objekter og verdier for ting som fonter, bakgrunner osv.
Stilfunksjonen lar deg standardisere på et spesifikt utseende for hele produktet. Den lar deg erstatte standardutseendet mens du beholder standardoppførselen.
En datamal lar deg kontrollere standardvisualiseringen av bundne data. Ved hjelp av temaer kan du enkelt bruke de visuelle stilene til operativsystemet.
Layout og paneler
Layout hjelper deg med riktig plassering og størrelse på kontrollene. Det er en del av prosessen med å komponere presentasjonen for brukeren. WPF-rammeverket forenkler layoutprosessen og gir bedre tilpasningsevne til brukergrensesnittets utseende.
Layoutinfrastrukturen tilbys av fem hovedklasser: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid og 5) Canvas
grafikk
WPF tilbyr et forbedret grafikksystem:
- WPF bruker enhetsuavhengige enheter, noe som muliggjør oppløsning og enhetsuavhengighet. Hver enhetsuavhengig piksel skaleres automatisk med systemets punkter per tomme-innstilling.
- WPF bruker dobbel i stedet for float og støtter et bredere utvalg av farger
- WPF-grafikkmotoren er utformet på en slik måte at den kan dra nytte av grafikkmaskinvare når den er tilgjengelig
Dokumenter og utskrift
WPF-rammeverket tilbyr tre typer dokumenter:
- Faste dokumenter: Denne typen dokument støtter WYSIWYG presentasjon.
- Flytdokumenter: Lar deg justere og flyte om innhold basert på kjøretidsvariabler som vindusstørrelse og enhetsoppløsning.
- XPS-dokumenter: En paginert representasjon av elektronisk papir i et XML-basert format. XPS er et åpent, standardisert dokumentformat.
WPF gir bedre kontroll over utskriftssystemet, inkludert fjernutskrift og køer. Dessuten kan XPS-dokumenter skrives ut direkte uten å konvertere dem til et utskriftsformat.
Når vi har dekket byggeklossene, la oss se hvordan disse delene passer sammen innvendig.
WPF Architecture
WPF er en del av .NET-rammeverket. Det inneholder både administrert og uadministrert kode. De viktigste komponentene i WPF-arkitekturen er forklart i figuren nedenfor:
Komponenter av WPF-arkitektur
- PresentationFrameworkHjelper deg med å lage elementer på toppnivå som kontroller, stiler, layout, vinduer osv.
- PresentationCoreDen inneholder basistyper som UIElement og Visual, som alle kontroller og former i PresentationFramework.dll er avledet fra.
- CLR: Det gjør utviklingsprosessen produktiv ved å tilby funksjoner som Minnehåndtering, feilhåndtering osv.
- Milcore: Milcore er en del av den uadministrerte koden som tilbyr tett integrasjon med DirectX.
- DirectX: Det er lavnivå-API-et som gjengir grafikken til WPF. DirectX samhandler med drivere og gjengir innholdet.
- Bruker 32: Det er et kjerne-API som er mye brukt av mange programmer. Det administrerer minne- og prosesseparasjon. User32 hjelper deg med å bestemme hvilket element som skal plasseres hvor på skjermen.
- kernel: Inndata kommer som et signal på en kjernemodus-enhetsdriver og blir rutet til riktig prosess ved å koble til Windows kjerne og User32.
WPF-databinding
Databinding er et av de kraftigste konseptene i WPF. I stedet for å skrive kode som manuelt kopierer verdier mellom kontroller og objekter, deklarerer du en forbindelse i XAML, og WPF holder begge sider synkronisert automatisk. For eksempel:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF støtter fire bindingsmoduser:
- Enveiskjøring: Kontrollen oppdateres når kildedataene endres
- Toveis: Endringer flyter i begge retninger mellom kontroll og kilde
- Engangs: Kontrollen leser kildeverdien bare én gang, ved lastetid
- EnveisTilKilde: Kontrollen skyver verdien sin til kilden, aldri omvendt
Databinding er også motoren bak MVVM-mønsteret (Model-View-ViewModel), den vanligste arkitekturen for profesjonelle WPF-applikasjoner, fordi den lar visningen forbli i XAML mens logikken lever i testbare C#-klasser.
💡 Tips: Implementer INotifyPropertyChanged-grensesnittet på dataklassene dine. Uten det vil ikke brukergrensesnittet oppdateres når egenskapsverdier endres i koden.
WPF installasjon
Se denne lenken for å installere WPF: https://www.guru99.com/download-install-visual-studio.html
I denne veiledningen for WPF-applikasjoner skal vi bygge vår første WPF-applikasjon.
Hvordan lage din første WPF-applikasjon?
I dette WPF-eksemplet skal vi utvikle en grunnleggende WPF-applikasjon. La oss starte den enkle implementeringen ved å følge trinnene gitt i WPF-applikasjonseksemplet nedenfor.
Trinn 1) I Visual Studio går du til Fil > Ny > Prosjekt
Trinn 2) I det nye prosjektvinduet
- Velg WPF App
- Skriv inn navn som "MyWPF"
- klikk OK
Trinn 3) Visual Studio lager to filer som standard
- XAML-fil (MainWindow.xaml)
- CS-fil (MainWindow.xaml.cs)
MainWindow.xaml har
- Et designvindu
- XAML fil
I XAML-vinduet skrives følgende tagger som standard:
Grid er det første elementet som standard.
MainWindow.xaml.cs inneholder den tilsvarende bakliggende koden for XAML-designfilen:
Trinn 4) I verktøykassen,
- Dra tekstenBox element til designvinduet
- En tekstBox vil vises i designvinduet
- Du vil se XAML-kode for tekstenBox la til
Trinn 5) Endre teksten til «Første WPF-program».
Trinn 6) Klikk på Start-knappen
Trinn 7) Du vil se et vindu i utdataene
Gratulerer! Du har designet og laget din første WPF-applikasjon. Neste i denne WPF for nybegynneropplæringen vil vi se forskjellen mellom WPF og WinForms.
WPF vs. WinForms
| WPF | WinForms |
|---|---|
| Det er et nyere rammeverk, så det er mer i tråd med gjeldende standarder. | Den er eldre, så den er mer utprøvd. |
| Den er fleksibel og funksjonsrik. Du kan designe svært omfattende applikasjoner uten å kode eller kjøpe kontroller. | Ikke så funksjonsrik |
| Utviklere av 3rd Partykontroller er fokusert på kompatibilitet med WPF ettersom det er fremtiden. | Det er mange tredjepartskontroller du kan kjøpe eller få gratis. |
| XAML lar deg enkelt opprette og redigere et grafisk brukergrensesnitt. Det gjør at arbeidet kan deles mellom en designer (XAML) og en programmerer (C#, VB.NET, osv.). | In Windows Skjemaer, all koden er skrevet på ett sted. |
| XAML-ferdigheter overføres direkte til nyere rammeverk som WinUI 3, .NET MAUI og Avalonia UI. | WinForms-ferdigheter gjelder hovedsakelig for klassiske Windows skrivebordsutvikling. |
| WPFs kontrollpakke i boksen er begrenset | Kontrollene i boksen er veldig kraftige |
Type applikasjoner bygget med WPF
- WPF brukes for frittstående Windows skrivebordsapplikasjoner som verktøy for forretningsområder i bedrifter, dashbord, handelsterminaler og designprogramvare
- Windows Skjemaer og WPF-sider kan eksistere side om side i samme applikasjon
- Du kan utvikle applikasjoner i side-/vindusnavigasjonsstil
WPF i Modern .NET
Microsoft WPF med åpen kildekode i desember 2018, og siden .NET Core 3.0 (2019) har rammeverket blitt levert med alle moderne .NET-utgivelser, opp til og med .NET 10. Å flytte en applikasjon til moderne .NET gir raskere oppstart, enklere distribusjon gjennom selvstendig publisering og tilgang til nåværende C#-språkfunksjoner, mens WPF-programmeringsmodellen forblir den samme.
WPF forblir Windows-bare. Hvis du velger et skrivebordsrammeverk i dag, hjelper denne sammenligningen:
| Rammeverk | Best For |
|---|---|
| WPF | Moden, funksjonsrik Windows skrivebordsapplikasjoner med et enormt økosystem |
| WindowsUI 3 | Nye applikasjoner rettet mot det moderne Windows 11 utseende og følelse |
| .NET FIKSET | Plattformtverrapplikasjoner som spenner over Windows, macOS, Android, og iOS |
Fordi WPF aktivt vedlikeholdes og er dypt integrert i bedriftsprogramvare, er det fortsatt en praktisk investering å lære seg det. Når du er komfortabel med å bygge disse applikasjonene, er det verdt å øve på de vanligste WPF-intervjuspørsmål å låse inne konsepter som XAML, databinding og det visuelle treet.









