WPF-zelfstudie voor beginners
โก Slimme samenvatting
WPF (Windows Presentatie Foundation) is Microsoft's raamwerk voor het bouwen van rijke Windows Desktoptoepassingen. Beginners leren hoe XAML, databinding en hardwareversnelde grafische weergave samenwerken om schaalbare, visueel aantrekkelijke gebruikersinterfaces te creรซren met minder code.

Wat is WPF?
WPF is een raamwerk voor het bouwen Windows Toepassingen waarmee ontwikkelaars rijke gebruikersinterfaces met 3D-animaties en levendige kleuren kunnen creรซren met minder complexe code. Het is een vectorgebaseerde rendering-engine die gebruikmaakt van de hardwareversnelling van moderne grafische kaarten, waardoor de gebruikersinterface sneller en zeer schaalbaar is. WPF staat voor Windows Presentatie Foundation.
WPF kan worden beschouwd als een evolutie van WinForms. Het biedt een gebruiksvriendelijk grafisch weergavesysteem voor Windows en biedt een duidelijke scheiding tussen gebruikersinterface en bedrijfslogica.
WPF-applicaties worden doorgaans als zelfstandige desktopprogramma's ingezet, maar ze kunnen ook als ingebedde objecten in andere applicaties worden gehost.
Waarom WPF?
Er zijn veel redenen om het WPF-platform te gebruiken. Enkele belangrijke redenen zijn:
- Een ideaal platform om te gebruiken als u met verschillende mediatypen te maken heeft
- Met WPF kun je een gebruikersinterface met een eigen thema creรซren. Het is ook handig wanneer je een deel van de gebruikersinterface moet laden of XML-gegevens wilt binden.
- Hiermee kunt u profiteren van de grote .NET-klassebibliotheek waarop deze is gebouwd .NET-technologie
- Resolutieonafhankelijkheid, waardoor applicaties ontwikkeld met WPF zowel op kleine tabletschermen als op een 20-inch monitor kunnen draaien.
- WPF is gebaseerd op DirectX in plaats van WinAPI. Het maakt gebruik van het grafische systeem van de clientcomputer, waardoor het een krachtigere grafische weergave biedt.
- Ondersteunt een documentstroommodel dat lay-outs van "desktop publishing"-kwaliteit mogelijk maakt.
- Uiterlijk en gedrag zijn losjes aan elkaar gekoppeld. Hierdoor kunnen ontwerpers en ontwikkelaars aan twee afzonderlijke modellen werken.
- In het WPF-framework kun je tools grafisch ontwerpen met behulp van eenvoudige XML-documenten in plaats van code te parsen.
- Hiermee kunt u hardwareversnelling gebruiken voor het tekenen van de GUI, voor betere prestaties
Laten we vervolgens eens kijken hoe het raamwerk zich in de loop der tijd heeft ontwikkeld.
Geschiedenis van WPF
Windows 1.0 was de eerste GUI-omgeving MicrosoftHet functioneerde als een laag bovenop DOS en maakte gebruik van de GDI- en USER-systemen voor grafische weergave en gebruikersinterface.
DirectX werd in 1995 geรฏntroduceerd als een krachtig grafisch systeem, gericht op games en andere grafische toepassingen. In de loop der jaren zijn er vele versies uitgebracht en DirectX 9 bood een bibliotheek die gebruikt kon worden met beheerde .NET-code.
| WPF-versie | Jaar | .Net-versie | Visual Studio-versie | Kenmerken |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | NB | Eerste uitgave. WPF-ontwikkeling kan echter worden gedaan met VS 2005. |
| 3.5 | 2007 | 3.5 | versus 2008 | Wijziging en verbeteringen in: Applicatiemodel, binding, besturingselementen, documenten, annotaties en 3D-UI-elementen. |
| 3.5 SP1 | 2008 | 3.5 SP1 | NB | Ondersteuning voor native splash-schermen. Nieuwe webbrowserbediening, ondersteuning voor DirectX pixel shader. |
| 4.0 | 2010 | 4.0 | versus 2010 | Nieuwe bedieningselementen: Kalender, DataGrid, Datumkiezer. Ondersteuning voor multitouch en manipulatie. |
| 4.5 | 2012 | 4.5 | versus 2012 | Snellere opstarttijd, betere prestaties bij het weergeven van grote datasets. Nieuw Ribbon-besturingselement en INotifyDataErrorInfo-interface voor gegevensvalidatie. |
| 4.5.1 | 2013 | 4.5.1 | versus 2013 | Kleine verbeteringen in prestaties en betrouwbaarheid. |
| 4.5.2 | 2014 | 4.5.2 | NA | Geen grote verandering |
| 4.6 | 2015 | 4.6 | versus 2015 | Transparante kinderraamsteun HDPI- en Touch-verbeteringen |
| 4.8 | 2019 | 4.8 | versus 2019 | Laatste grote release van het .NET Framework, met oplossingen voor problemen met hoge DPI-schermen en verbeteringen op het gebied van toegankelijkheid. |
| .NET Core 3.0 en hoger | 2019-heden | .NET Core 3.0 naar .NET 10 | VS 2019/2022 | WPF wordt open source en wordt meegeleverd met moderne .NET (applicaties blijven Windows-alleen). |
WPF wordt niet langer los van .NET uitgebracht. Sinds 2019 wordt het geleverd als een open-sourcecomponent van het moderne .NET-platform, en de huidige versie is opgenomen in .NET 10, dat in november 2025 als een long-term support (LTS)-versie is uitgebracht.
Kenmerken van WPF
Het onderstaande diagram groepeert de belangrijkste WPF-functionaliteiten, die hieronder in detail worden beschreven.

- Documenten en afdrukken
- Beveiliging, toegankelijkheid en lokalisatie
- Biedt interoperabiliteit met Windows Formulierbedieningen
- Direct3D wordt gebruikt in grafische toepassingen waarbij prestaties belangrijk zijn
- Gebruikt de hardware van de videokaart voor weergave
- Vectorafbeeldingen stellen u in staat uw applicatie te schalen zonder kwaliteitsverlies.
- WPF ondersteunt een logisch pixelsysteem met drijvende-kommawaarden en 32-bits ARGB-kleur.
- Herdefinieer stijlen en besturingssjablonen
- Internationale lettertypen bouwen uit samengestelde lettertypen
- Tekstweergave in WPF maakt gebruik van ClearType-technologie.
- Hiermee kunt u de cachetechniek van vooraf weergegeven tekst in het videogeheugen gebruiken
- Een op middelen gebaseerde aanpak voor elke controle.
- Presentatietimers worden geรฏnitialiseerd en beheerd door WPF
- Ook de relatie tussen video en animatie wordt ondersteund
- In WPF is een stijl een set eigenschappen die moeten worden toegepast op inhoud die wordt gebruikt voor visuele weergave.
- Sjablonen in WPF helpen je om de gebruikersinterface van je document aan te passen.
- Commando's zijn een meer abstract en een losgekoppelde versie van gebeurtenissen
- WPF-ondersteuning voor opdrachten vermindert de hoeveelheid code die we moeten schrijven
Volgende in deze WPF C#-tutorialWe zullen meer leren over de kerntypen en infrastructuur van WPF.
WPF-kerntypen en infrastructuren
De klassen in WPF zijn onderverdeeld in vier verschillende typen:
- UIelement
- FrameworkElement
- InhoudElement
- FrameworkContentElement
Deze klassen worden basiselementklassen genoemd. Ze vormen de basis voor een model voor het samenstellen van gebruikersinterfaces.
WPF-gebruikersinterfaces zijn opgebouwd uit elementen die in een boomstructuur, de zogenaamde elementenboom, zijn gerangschikt. De elementenboom is een intuรฏtieve manier om gebruikersinterfaces vorm te geven en vormt de basis voor krachtige UI-services.
XAML
Extensible Application Markup Language, ook wel "XAML" genoemd (spreek uit als "zammel"), is een declaratieve manier om gebruikersinterfaces te definiรซren.
Hier is de XAML-definitie van een eenvoudige knop:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Voordelen van het gebruik van de XAML-taal:
- XAML scheidt de front-endweergave van de back-endlogica.
- XAML is de eenvoudigste methode om gebruikersinterfaces weer te geven
- XAML werkt effectief samen met ontwerptools.
Controls
Het WPF-framework ondersteunt veel handige besturingselementen, zoals:
- Besturingselementen zoals Tekst bewerkenBox, RekeningBox, Radio knop
- Lijstbesturingselementen zoals LijstBox, Lijstweergave, Boomweergave
- Gebruikersinformatie zoals Label, WPF ProgressBar, ToolTip
- Actie zoals Menu, Knop en Werkbalk
- Verschijningen zoals Border, WPF Image en Viewbox
- Veelgebruikte dialoogvensters zoals OpenFileDialog en PrintDialog
- Containers zoals TabControl, ScrollBar en GroupBox
- Indelingen zoals DockPanel, StackPanel en Grid
- Navigatie zoals Frame en Hyperlink
Het uiterlijk van de bedieningselementen kan zonder programmering worden aangepast met stijlen en sjablonen. U kunt ook een aangepast besturingselement maken door een nieuwe klasse af te leiden van een geschikte basisklasse.
het Uiterlijk
WPF biedt een functie waarmee u het uiterlijk van uw toepassing kunt aanpassen. Hiermee kunt u objecten en waarden instellen voor zaken als lettertypen, achtergronden, enz.
Met de stijlfunctie kunt u standaardiseren op een specifieke look voor het hele product. Hiermee kunt u de standaardweergave vervangen terwijl u het standaardgedrag behoudt.
Met een datasjabloon kunt u de standaardweergave van gekoppelde gegevens bepalen. Met behulp van thema's kunt u eenvoudig de visuele stijlen van het besturingssysteem toepassen.
Indeling & Panelen
De lay-out helpt je bij het correct positioneren en dimensioneren van besturingselementen. Het is een onderdeel van het proces om de presentatie voor de gebruiker samen te stellen. Het WPF-framework vereenvoudigt het lay-outproces en biedt een betere aanpasbaarheid van het uiterlijk van de gebruikersinterface.
De lay-outinfrastructuur wordt aangeboden door vijf hoofdklassen: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid en 5) Canvas
grafiek
WPF biedt een verbeterd grafisch systeem:
- WPF maakt gebruik van apparaatonafhankelijke eenheden, waardoor resolutie- en apparaatonafhankelijkheid mogelijk is. Elke apparaatonafhankelijke pixel schaalt automatisch mee met de dots-per-inch-instelling van het systeem.
- WPF gebruikt double in plaats van float en ondersteunt een breder scala aan kleuren
- De grafische engine van WPF is zo ontworpen dat deze kan profiteren van grafische hardware, indien beschikbaar
Documenten en afdrukken
Het WPF-framework biedt drie soorten documenten:
- Vaste documenten: Dit type document ondersteunt WYSIWYG-presentatie.
- Stroomdocumenten: Hiermee kunt u inhoud aanpassen en opnieuw plaatsen op basis van runtimevariabelen zoals venstergrootte en apparaatresolutie.
- XPS-documenten: Een gepagineerde weergave van elektronisch papier in een XML-gebaseerd formaat. XPS is een open, gestandaardiseerd documentformaat.
WPF biedt betere controle over het printsysteem, inclusief printen op afstand en printwachtrijen. Bovendien kunnen XPS-documenten direct worden afgedrukt zonder ze eerst naar een printformaat te converteren.
Nu we de bouwstenen hebben behandeld, laten we eens kijken hoe deze onderdelen intern in elkaar passen.
WPF Architectuur
WPF maakt deel uit van het .NET-framework. Het bevat zowel beheerde als onbeheerde code. De belangrijkste componenten van de WPF-architectuur worden in de onderstaande afbeelding uitgelegd:
Componenten van WPF-architectuur
- PresentatieFrameworkHiermee kunt u elementen op het hoogste niveau maken, zoals besturingselementen, stijlen, lay-outs, vensters, enzovoort.
- PresentatieKernHet bevat basistypen zoals UIElement en Visual, waarvan alle besturingselementen en vormen in PresentationFramework.dll zijn afgeleid.
- CLR: Het maakt het ontwikkelingsproces productief door functies aan te bieden zoals geheugenbeheer, foutafhandeling, enz.
- Milcore: Milcore is een onderdeel van de onbeheerde code die een nauwe integratie met DirectX biedt.
- DirectX: Het is de API op laag niveau die de grafische weergave van WPF verzorgt. DirectX communiceert met stuurprogramma's en rendert de inhoud.
- Gebruiker32: Het is een essentiรซle API die door veel programma's wordt gebruikt. Het beheert geheugen en processcheiding. User32 helpt je te bepalen welk element waar op het scherm wordt geplaatst.
- Kernel: De invoer is afkomstig van een signaal op een apparaatstuurprogramma in kernelmodus en wordt naar het juiste proces doorgestuurd via een verbinding met de Windows kernel en User32.
WPF-gegevensbinding
Databinding is een van de krachtigste concepten in WPF. In plaats van code te schrijven die handmatig waarden tussen controls en objecten kopieert, declareert u een verbinding in XAML en zorgt WPF ervoor dat beide kanten automatisch gesynchroniseerd blijven. Bijvoorbeeld:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF ondersteunt vier bindingsmodi:
- OneWay: De besturing wordt bijgewerkt wanneer de brongegevens wijzigen.
- Tweeweg: Veranderingen stromen in beide richtingen tussen de besturing en de bron.
- Eenmalig: De besturing leest de bronwaarde slechts รฉรฉn keer, tijdens het laden.
- OneWayToSource: De besturing stuurt zijn waarde naar de bron, nooit andersom.
Databinding is ook de motor achter het MVVM-patroon (Model-View-ViewModel), de meest voorkomende architectuur voor professionele WPF-applicaties, omdat het ervoor zorgt dat de weergave in XAML blijft, terwijl de logica zich in testbare C#-klassen bevindt.
๐กTip: Implementeer de INotifyPropertyChanged-interface in uw dataklassen. Zonder deze interface wordt de gebruikersinterface niet vernieuwd wanneer eigenschapswaarden in de code wijzigen.
WPF-installatie
Raadpleeg deze link voor instructies over het installeren van WPF: https://www.guru99.com/download-install-visual-studio.html
In het volgende deel van deze WPF-applicatiehandleiding gaan we onze eerste WPF-applicatie bouwen.
Hoe maakt u uw eerste WPF-applicatie?
In dit WPF-voorbeeld ontwikkelen we een eenvoudige WPF-applicatie. Laten we beginnen met de simpele implementatie door de stappen in het onderstaande WPF-applicatievoorbeeld te volgen.
Stap 1) Ga in Visual Studio naar Bestand > Nieuw > Project
Stap 2) In het nieuwe projectvenster
- Selecteer WPF-app
- Voer de naam in als "MijnWPF"
- klik op OK
Stap 3) Visual Studio maakt standaard twee bestanden aan
- XAML-bestand (MainWindow.xaml)
- CS-bestand (MainWindow.xaml.cs)
De MainWindow.xaml heeft
- Een ontwerpvenster
- XAML-bestand
In het XAML-venster worden standaard de volgende tags geschreven:
Het raster is standaard het eerste element.
Het bestand MainWindow.xaml.cs bevat de bijbehorende code-behind voor het XAML-ontwerpbestand:
Stap 4) In de gereedschapskist,
- Sleep de tekstBox element naar het ontwerpvenster
- Een tekstBox verschijnt in het ontwerpvenster
- Je ziet XAML-code voor de tekst.Box toegevoegd
Stap 5) Wijzig de tekst in โEerste WPF-programma.โ
Stap 6) Klik op de Start-knop
Stap 7) In de uitvoer ziet u een venster.
Gefeliciteerd! U heeft uw eerste WPF-applicatie ontworpen en gemaakt. Vervolgens zullen we in deze WPF voor beginners-tutorial het verschil zien tussen WPF en WinForms.
WPF versus WinForms
| WPF | WinFormulieren |
|---|---|
| Het is een nieuwer raamwerk, dus het sluit beter aan bij de huidige standaarden. | Het is ouder, dus het is meer beproefd. |
| Het is flexibel en rijk aan functies. Je kunt zeer uitgebreide applicaties ontwerpen zonder te programmeren of besturingselementen aan te schaffen. | Niet zo rijk aan functies |
| Ontwikkelaars van 3rd De focus bij het ontwikkelen van party controls ligt op compatibiliteit met WPF, omdat dat de toekomst is. | Er zijn veel besturingselementen van derden die u kunt kopen of gratis kunt krijgen. |
| Met XAML kun je eenvoudig je grafische gebruikersinterface (GUI) maken en bewerken. Het zorgt ervoor dat het werk verdeeld kan worden tussen een ontwerper (XAML) en een programmeur (C#, VB.NET, enz.). | In Windows Formulieren, alle code staat op รฉรฉn plek. |
| XAML-vaardigheden zijn direct overdraagbaar naar nieuwere frameworks zoals WinUI 3, .NET MAUI en Avalonia UI. | WinForms-vaardigheden zijn vooral van toepassing op klassieke toepassingen. Windows Desktopontwikkeling. |
| De in-box control suite van WPF is beperkt | De bedieningselementen in de box zijn erg krachtig |
Type applicaties gebouwd met WPF
- WPF wordt gebruikt voor standalone-toepassingen. Windows Desktopapplicaties zoals bedrijfstools, dashboards, handelsterminals en ontwerpsoftware.
- Windows Formulieren en WPF-pagina's kunnen naast elkaar in dezelfde applicatie bestaan
- Je kunt applicaties ontwikkelen met pagina-/vensternavigatie.
WPF in Modern .NET
Microsoft WPF werd in december 2018 open-source gemaakt en sinds .NET Core 3.0 (2019) wordt het framework meegeleverd met elke moderne .NET-release, tot en met .NET 10. Het migreren van een applicatie naar een moderne .NET-omgeving biedt snellere opstarttijden, eenvoudigere implementatie dankzij zelfstandige publicatie en toegang tot de huidige C#-taalfunctionaliteiten, terwijl het WPF-programmeermodel hetzelfde blijft.
WPF blijft Windows-alleen. Als je vandaag een desktopframework kiest, kan deze vergelijking je helpen:
| Kader | beste voor |
|---|---|
| WPF | Volwassen, rijk aan functies Windows desktopapplicaties met een enorm ecosysteem |
| WindowsUI 3 | Nieuwe toepassingen gericht op de moderne Windows 11. Uiterlijk en gevoel |
| .NET VASTE | Platformoverschrijdende applicaties die zich uitstrekken over Windows, macOS, Androiden iOS |
Omdat WPF actief wordt onderhouden en diep verankerd is in bedrijfssoftware, blijft het leren ervan een praktische investering. Zodra je vertrouwd bent met het bouwen van deze applicaties, is het de moeite waard om de meest voorkomende te oefenen. WPF-interviewvragen om concepten zoals XAML, databinding en de visuele boomstructuur vast te leggen.









