WPF-veiledning for nybegynnere: Hvordan lage en applikasjon [Eksempel]
Hva er WPF?
WPF er et rammeverk for å bygge Windows applikasjoner som lar brukere utvikle rike brukergrensesnitt med 3D-animasjoner og rike farger med mindre kodekompleksitet. Det er en vektorbasert gjengivelsesmotor som bruker maskinvareakselerasjon av moderne grafikkort, noe som gjør Ul raskere og svært skalerbar. WPF står for Windows Presentasjon Foundation.
WPF kan betraktes som en evolusjon over WinForms. Den produserer enkelt å betjene grafisk displaysystem for Windows. Det gir enkel separasjon mellom brukergrensesnitt og forretningslogikk.
WPF-applikasjoner kan distribueres i systemet ditt som et frittstående skrivebordsprogram eller vert som et innebygd objekt på et nettsted.
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 skinnet brukergrensesnitt. Det hjelper deg også når du trenger å laste inn deler 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 WMF kan kjøres på mobile enheter eller en 20-tommers skjerm
- WPF bygger på DirectX i stedet for WinAPI. Den tilbyr klientdatamaskinens grafikksystem. Derfor tilbys større grafisk gjengivelseskraft
- Støtter en flytdokumentmodell som muliggjør "skrivebordspublisering"-kvalitet på oppsettet
- Utseende og oppførsel henger løst sammen. Dette gjør at designere og utviklere kan jobbe med to separate modeller
- I WMF-rammeverket kan du grafisk designe verktøy på enkle XML-dokumenter i stedet for å analysere kode
- Lar deg bruke maskinvareakselerasjon for å tegne GUI, for bedre ytelse
Historien til WPF
Windows 1.0 var det første GUI-miljøet fra Microsoft. Den fungerer som et lag på toppen av DOS, og er avhengig av GDI- og USER-systemene for grafikk og brukergrensesnitt.
DirectX ble introdusert i 1995, som et grafikksystem med høy ytelse. Det var rettet mot spill og andre grafikkrelaterte miljøer. Gjennom årene er det mange versjoner utgitt med Directx9 som gir et bibliotek å bruke med mange.Net-kode.
WPF versjon | Utgivelsesår | .Net-versjon | Visual Studio-versjon | Egenskaper |
---|---|---|---|---|
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, innbinding, kontroller, dokumenter, merknader og 3-D Ul-elementer. |
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. Multi-Touch og manipulasjon |
4.5 | 2012 | 4.5 | SV 2012 | Raskere oppsetttid og forbedret ytelse for bitmap-effekter. Nye kontroller: Kalender. DataGrid, DatePicker. Multi-Touch og manipulasjon |
4.5.1 | 2013 | 4.5.1 | SV 2013 | Ny båndkontroll Nytt INotifyDataErrorlinfo-grensesnitt |
4.5.2 | 2014 | 4.5.2 | NA | Ingen større endring Ingen større endring |
4.6 | 2015 | 4.6 | SV 2015 | Gjennomsiktig støtte for barnevinduer HDPI og Touch forbedringer |
Den siste stabile versjonen av WPF 5.0.6 som er utgitt i april 2021.
Funksjoner av WPF

- 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 uten tap av kvalitet
- WPF støtter logisk flytende pikselsystem og 32-bit ARGB-farge
- Redefiner stiler og kontrollmaler
- Bygge internasjonale fonter fra sammensatte fonter
- WPF-tekstgjengivelse hjelper deg å dra nytte av 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 Ul på dokumentet ditt
- Kommandoer er mer abstrakte og løst koblede versjoner 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, kjent som basiselementklasser. Det gir grunnlaget for en modell for å komponere brukergrensesnitt.
WPF-brukergrensesnitt er sammensatt av elementer som er satt sammen i et trehierarki. Det kalles elementtreet. Elementtreet er en intuitiv måte å layoute brukergrensesnitt på. Det er en struktur som lar deg få funksjonen til kraftige brukergrensesnitttjenester.
XAML
Extensible Application Markup Language som kalles "XAML", eller "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>
Fordel med å bruke XAML-språk:
- XAML skiller frontend-utseende fra back-end-logikk
- XAML er den enkleste metoden for å representere brukergrensesnitt
- XAML er å jobbe effektivt med verktø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 TabContro, ScrollBar og GroupBox
- Layouter som DocPanel, 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.
Datamal lar deg kontrollere standardvisualiseringen av de bundne dataene. Ved hjelp av temaer kan du enkelt visualisere stiler fra operativsystemet.
Layout og paneler
Layout hjelper deg med riktig posisjonering og størrelseskontroll. Det er en del av prosessen med å komponere presentasjonen for brukeren. WPF-rammeverket forenkler layoutprosessen og tilbyr bedre tilpasningsmuligheter for UI-utseendet.
Layoutinfrastrukturen tilbys av ulike klasser er 1) StackPanel 2)DockPanel 3) WrapPanel 4) Grid og 5) Canvas
grafikk
WPF gir et forbedret grafikksystem som
- WPF bruker enhetsuavhengige enheter, som muliggjør oppløsning og enhetsuavhengighet. Derfor skalerer hver piksel, som er enhetsuavhengig, automatisk med innstillingssystemet for punkter per tomme
- 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: Det er en paginert representasjon av elektronisk papir i et XML-basert format. XPS er et åpen kildekode og dokumentformat på tvers av plattformer.
WPF gir bedre kontroll over utskriftssystemet. Det inkluderer ekstern utskrift og køer. Dessuten kan XPS-dokumenter skrives ut direkte uten å konvertere det til et utskriftsformat.
WPF Architecture
WPF er en del av .NET-rammeverket. Den inneholder både administrert og uadministrert kode. De viktige komponentene i WPF-arkitektur er forklart i figuren nedenfor:

Komponenter av WPF-arkitektur
- PresentationFramework: Hjelper deg med å lage elementer på øverste nivå som kontroller, stiler, layout, vinduer osv.
- PresentationCore: Den inneholder basistyper som UIElement, Visual fra alle kontroller og former er avledet i PresentationFramework.dll.
- 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 som tillater gjengivelse av grafikk av WPF. DirectX-samtaler samhandler med drivere og gjengir innholdet.
- Bruker 32: Det er en kjerne-API som er mye brukt av mange programmer. Den administrerer minne og prosessseparasjon. User32 hjelper deg med å bestemme hvilket element som skal plasseres hvor på skjermen.
- kernel: Inndata stammer fra et signal på en enhetsdriver i kjernemodus og blir rutet til riktig prosess og ved å koble til Windows kjerne og User32.
WPF installasjon
Se denne lenken for å installere WPF https://www.guru99.com/download-install-visual-studio.html
Neste i denne WPF-applikasjonsopplæringen vil vi bygge vår første WPF.
Hvordan lage din første WPF-applikasjon?
I dette WPF-eksemplet vil vi utvikle en grunnleggende WPF-applikasjon. Så la oss starte den enkle implementeringen ved å følge trinnene gitt i WPF-applikasjonseksempler nedenfor.
Trinn 1) Gå til Fil > Prosjekt i Visual Studio
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-vinduene skrives følgende tagger som standard
Grid er det første elementet som standard.
MainWindow.xaml.cs inneholder den tilsvarende koden bak XAML-designfilen
Trinn 4) I verktøykassen,
- Dra tekstBox element til designvinduet
- En tekstBox vil vises i designvinduet
- Du vil se XAML-kode for tekstBox la til
Trinn 5) Endre teksten til "Første WPF-program."
Trinn 6) Klikk på Start-knappen
Trinn 7) Du vil se et vindu ved utgang
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 har mange funksjoner. Du kan designe veldig rike applikasjoner uten å kode eller kjøpe kontroller. | Ikke så funksjonsrik |
Utviklere av 3rd partikontroller er fokusert på kompatibilitet med WPF ettersom det er fremtiden. | Det er mange tredjepartskontroller du kan kjøpe eller få gratis. |
XAML lar deg lage og redigere GUI enkelt. Det gjør at arbeidet kan deles mellom en designer (XAML) og en programmerer (C#, ASP.net, etc.). | In Windows Danner all koden skrevet på ett sted. |
WPF kan lage brukergrensesnitt for begge Windows applikasjoner og webapplikasjoner som Silverlight og XBAP. | Ingen slik støtte |
WPFs kontrollpakke i boksen er begrenset | Kontrollene i boksen er veldig kraftige |
Type applikasjoner bygget med WPF
- WPF prøver å erstatte nettskjemaer og Windows-skjemaer - apper kan bygges for å kjøre i en nettleser eller et frittstående vindu
- Windows Skjemaer og WPF-sider kan eksistere side om side i samme applikasjon
- Du kan utvikle side-/vindusapplikasjoner
Hurtiginnføring
- WPF full form er Windows Presentasjon Foundation
- Det er en ideell plattform å bruke hvis du trenger å håndtere ulike medietyper
- Windows 1.0 var det første GUI-miljøet fra Microsoft som jobbet med DOS og stolte på GDI- og USER-systemene
- WPF i .NET tilbyr interoperabilitet med Windows Skjemakontroller
- WPF er delt inn i fire forskjellige typer som UIElement, FrameworkElement ContentElement og FrameworkContentElement
- De viktigste komponentene i en del av WPF-arkitekturen er PresentationFramework, PresentationCore, CLR, Milcore, DirectX, User32 og Kernel
- WPF er et nyere rammeverk som sammenligner WinForms, så det er mer i tråd med gjeldende standarder
- Windows Skjemaer og WPF-sider kan eksistere side om side i samme applikasjon