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.

  • ๐Ÿงญ Foundation: WPF is een vectorgebaseerd, DirectX-gestuurd UI-framework binnen het .NET-platform.
  • ???? XAML-opmaak: Declaratieve XML-syntaxis scheidt het interfaceontwerp van de bedrijfslogica in C#.
  • ๐Ÿงฑ Archistructuur: PresentationFramework, PresentationCore en Milcore werken samen boven DirectX voor rendering.
  • ๐Ÿ”— Gegevenskoppeling: De ingebouwde binding verbindt besturingselementen met gegevensbronnen en vormt de basis van het MVVM-patroon.
  • ๏ธ Praktische start: Met Visual Studio-sjablonen kunt u in zeven stappen uw eerste WPF-app bouwen en uitvoeren.
  • ๐Ÿš€ Moderne relevantie: WPF is open source en wordt meegeleverd met .NET 10 onder langdurige ondersteuning.

WPF-zelfstudie voor beginners

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.

Kenmerken van WPF
Kenmerken van WPF
  • 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:

WPF Architectuur

WPF Architectuur

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

Het menu 'Bestand' van Visual Studio toont de optie 'Nieuw project'.

Stap 2) In het nieuwe projectvenster

  1. Selecteer WPF-app
  2. Voer de naam in als "MijnWPF"
  3. klik op OK

Nieuw projectvenster met de WPF-appsjabloon geselecteerd

Stap 3) Visual Studio maakt standaard twee bestanden aan

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

Solution Explorer toont de bestanden MainWindow.xaml en MainWindow.xaml.cs.

De MainWindow.xaml heeft

  1. Een ontwerpvenster
  2. XAML-bestand

Het ontwerpvenster MainWindow.xaml en de XAML-editor in Visual Studio.

In het XAML-venster worden standaard de volgende tags geschreven:

Standaard XAML-tags gegenereerd voor een nieuw WPF-venster

Het raster is standaard het eerste element.

Het bestand MainWindow.xaml.cs bevat de bijbehorende code-behind voor het XAML-ontwerpbestand:

Het code-behind-bestand MainWindow.xaml.cs voor het WPF-venster.

Stap 4) In de gereedschapskist,

  1. Sleep de tekstBox element naar het ontwerpvenster
  2. Een tekstBox verschijnt in het ontwerpvenster
  3. Je ziet XAML-code voor de tekst.Box toegevoegd

Tekst slepenBox vanuit de gereedschapskist naar het WPF-ontwerpvenster

Stap 5) Wijzig de tekst in โ€œEerste WPF-programma.โ€

Tekst bewerkenBox teksteigenschap voor het eerste WPF-programma

Stap 6) Klik op de Start-knop

De startknop van Visual Studio gebruiken om de WPF-toepassing uit te voeren.

Stap 7) In de uitvoer ziet u een venster.

Het venster van de WPF-applicatie toont de tekst "Eerste WPF-programma".

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.

Veelgestelde vragen

Je hebt XAML nodig voor het ontwerpen van de interface en C# (of VB.NET) voor de applicatielogica. Basiskennis van objectgeoriรซnteerd programmeren en de .NET-klassenbibliotheek maakt het leren van WPF een stuk eenvoudiger.

Nee. WPF is afhankelijk van DirectX en Windows API's, dus het werkt alleen op WindowsVoor platformoverschrijdende XAML-ontwikkeling kunt u het volgende overwegen: Avalonia UI or .NET VASTE.

Ja. Hulpmiddelen zoals GitHub-copiloot Het programma kan XAML-layouts, bindingexpressies en stijlen genereren vanuit commentaren, wat het leerproces versnelt en repetitieve opmaak voor beginners vermindert.

U kunt integreren ML.NET voor lokale machine learning of roep cloud AI-services aan zoals Azure Open AI vanuit je C#-code en toon de resultaten vervolgens via standaard WPF-databinding.

Ja. WPF is open source onder de MIT-licentie en je kunt er gratis applicaties mee bouwen met Visual Studio Community Edition.

Vat dit bericht samen met: