WPF-handledning för nybörjare: Hur man skapar en applikation [Exempel]

Vad är WPF?

WPF är ett ramverk för att bygga Windows applikationer som tillåter användare att utveckla rika användargränssnitt med 3D-animationer och rika färger med mindre kodkomplexitet. Det är en vektorbaserad renderingsmotor som använder hårdvaruacceleration av moderna grafikkort, vilket gör Ul snabbare och mycket skalbar. WPF står för Windows Presentation Foundation.

WPF kan betraktas som en utveckling över WinForms. Den producerar lättanvända grafiska displaysystem för Windows. Det erbjuder enkel åtskillnad mellan användargränssnitt och affärslogik.

WPF-applikationer kan distribueras i ditt system som ett fristående skrivbordsprogram eller hostas som ett inbäddat objekt på en webbplats.

Varför WPF?

Det finns många anledningar till att använda WPF-plattformen, några framstående är-

  • En idealisk plattform att använda om du behöver hantera olika mediatyper
  • WPF låter dig skapa ett skalat användargränssnitt. Det hjälper dig också när du behöver ladda en del av användargränssnittet eller vill binda XML-data
  • Det låter dig dra nytta av det stora .NET-klassbiblioteket som det är byggt på .NET-teknik
  • Upplösningsoberoende, så applikationer utvecklade med WMF kan köras på mobila enheter eller en 20-tums bildskärm
  • WPF bygger på DirectX istället för WinAPI. Den erbjuder klientdatorns grafiksystem. Erbjuder därför större grafisk renderingskraft
  • Stöder en flödesdokumentmodell som möjliggör "skrivbordspublicering" av layouten
  • Utseende och beteende är löst kopplade. Detta gör att designers och utvecklare kan arbeta på två separata modeller
  • I WMF-ramverket kan du grafiskt designa verktyg på enkla XML-dokument istället för att tolka kod
  • Låter dig använda hårdvaruacceleration för att rita GUI, för bättre prestanda

Historia om WPF

Windows 1.0 var den första GUI-miljön från Microsoft. Det fungerar som ett lager ovanpå DOS och förlitar sig på GDI- och USER-systemen för grafik och användargränssnitt.

DirectX introducerades år 1995, som ett högpresterande grafiksystem. Det var inriktat på spel och andra grafikrelaterade miljöer. Under årens lopp har det släppts många versioner med Directx9 som tillhandahåller ett bibliotek att använda med mange.Net-kod.

WPF version Release Year .Net-version Visual Studio-version Egenskaper
3.0 2006 3.0 Ja Initial Release.
WPF-utveckling kan dock göras med VS 2005.
3.5 2007 3.5 US 2008 Ändringar och förbättringar i:
Applikationsmodell, bindning, kontroller, dokument, anteckningar och 3-D Ul-element.
3.5 SP1 2008 3.5 SP1 Ja Stöd för inbyggt stänkskärm. Ny webbläsarkontroll, stöd för DirectX pixel shader.
4.0 2010 4.0 US 2010 Nya kontroller: Kalender. DataGrid, DatePicker. Multi-Touch och manipulation
4.5 2012 4.5 US 2012 Snabbare installationstid och förbättrad prestanda för Bitmap-effekter. Nya kontroller: Kalender. DataGrid, DatePicker.
Multi-Touch och manipulation
4.5.1 2013 4.5.1 US 2013 Ny bandkontroll
Nytt INotifyDataErrorlinfo-gränssnitt
4.5.2 2014 4.5.2 NA Ingen större förändring
Ingen större förändring
4.6 2015 4.6 US 2015 Transparent stöd för barnfönster
HDPI och Touch förbättringar

Den senaste stabila versionen av WPF 5.0.6 som släpptes i april 2021.

Funktioner hos WPF

Funktioner hos WPF
Funktioner hos WPF
  • Dokument och utskrift
  • Säkerhet, tillgänglighet och lokalisering
  • Erbjuder interoperabilitet med Windows Formar kontroller
  • Direct3D används i grafiska applikationer där prestanda är viktigt
  • Använder grafikkortets hårdvara för rendering
  • Vektorbaserad grafik låter dig skala din applikation utan kvalitetsförlust
  • WPF stöder logiskt pixelsystem med flyttal och 32-bitars ARGB-färg
  • Omdefiniera stilar och kontrollmallar
  • Bygga internationella typsnitt från sammansatta typsnitt
  • WPF-textrendering hjälper dig att dra fördel av ClearType-tekniken
  • Låter dig använda cachetekniken för förrenderad text i videominnet
  • Resursbaserad tillvägagångssätt för varje kontroll
  • Presentationstimer initieras och hanteras av WPF
  • Relationen mellan video och animation stöds också
  • I WPF är en stil en uppsättning egenskaper som bör tillämpas på innehåll som används för visuell rendering
  • Mallar i WPF hjälper dig att ändra ul för ditt dokument
  • Kommandon är mer abstrakta och löst kopplade versioner av händelser
  • WPF-stöd för kommandon minskar mängden kod vi behöver skriva

Nästa i denna WPF C# handledning, kommer vi att lära oss om WPF-kärntyper och infrastruktur.

WPF kärntyper och infrastrukturer

Klasser i WPF är indelade i fyra olika typer:

  • UIElement
  • FrameworkElement
  • ContentElement
  • FrameworkContentElement

Dessa klasser, kända som baselementklasser. Det ger grunden för en modell för att skapa användargränssnitt.

WPF-användargränssnitt är sammansatta av element som är sammansatta i en trädhierarki. Det kallas elementträdet. Elementträdet är ett intuitivt sätt att layouta användargränssnitt. Det är en struktur som låter dig få funktionen hos kraftfulla UI-tjänster.

XAML

Extensible Application Markup Language som kallas "XAML" eller "zammel" är ett deklarativt sätt att definiera användargränssnitt.

Här är XAML-definitionen av en enkel knapp:

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

Fördel med att använda XAML-språk:

  • XAML som skiljer front-end-utseende från back-end-logik
  • XAML är den enklaste metoden att representera användargränssnitt
  • XAML är att arbeta effektivt med verktyg

Fjärrkontroll

WPF-ramverket stöder många användbara kontroller som:

  • Redigeringskontroller som textBox, Kolla uppBox, Radio knapp
  • Listkontroller som ListaBox, ListView, TreeView
  • Användarinformation som Label, WPF ProgressBar, ToolTip
  • Åtgärder som meny, knapp och verktygsfält
  • Utseende som Border, WPF Image och Viewbox
  • Vanliga dialogrutor som OpenFileDialog och PrintDialog.
  • Behållare som TabContro, ScrollBar och GroupBox
  • Layouter som DocPanel, StackPanel och Grid
  • Navigering som ram och hyperlänk

Utseendet på kontroller kan anpassas med stilar och mallar utan programmering. Du kan också skapa en anpassad kontroll genom att härleda en ny klass från en lämplig basklass.

Utseende

WPF tillhandahåller en funktion för att anpassa utseendet på din applikation. Det låter dig ställa in objekt och värden för saker som typsnitt, bakgrunder etc.

Styles-funktionen låter dig standardisera på ett specifikt utseende för hela produkten. Det låter dig ersätta standardutseendet samtidigt som det behåller dess standardbeteende.

Datamall låter dig styra standardvisualiseringen av bundna data. Med hjälp av teman kan du enkelt visualisera stilar från operativsystemet.

Layout & Paneler

Layout hjälper dig med korrekt positionering och storlekskontroll. Det är en del av processen att komponera presentationen för användaren. WPF-ramverket underlättar layoutprocessen och erbjuder bättre anpassningsförmåga av UI-utseendet.

Layoutinfrastrukturen erbjuds av olika klasser är 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid och 5) Canvas

Grafiken

WPF ger ett förbättrat grafiksystem som

  • WPF använder enhetsoberoende enheter, vilket möjliggör upplösning och enhetsoberoende. Därför skalas varje pixel, som är enhetsoberoende, automatiskt med inställningssystemet för punkter per tum
  • WPF använder dubbel istället för float och stöder ett bredare spektrum av färger
  • WPF-grafikmotorn är designad på ett sådant sätt att den kan dra nytta av grafikhårdvara när den är tillgänglig

Dokument och utskrift

WPF-ramverket erbjuder tre typer av dokument:

  • Fasta dokument: Denna typ av dokument stöder WYSIWYG presentation.
  • Flödesdokument: Låter dig justera och ändra innehåll baserat på körtidsvariabler som fönsterstorlek och enhetsupplösning.
  • XPS-dokument: Det är en sidnumrerad representation av elektroniskt papper i ett XML-baserat format. XPS är ett dokumentformat med öppen källkod och plattformsoberoende.

WPF möjliggör bättre kontroll över utskriftssystemet. Det inkluderar fjärrutskrift och köer. Dessutom kan XPS-dokument skrivas ut direkt utan att konvertera det till ett utskriftsformat.

WPF Architecture

WPF är en del av .NET-ramverket. Den innehåller både hanterad och ohanterad kod. De viktiga komponenterna i WPF-arkitekturen förklaras i nedanstående figur:

WPF Architecture
WPF Architecture

Komponenter i WPF-arkitektur

  • PresentationFramework: Hjälper dig att skapa element på toppnivå som kontroller, stilar, layout, fönster, etc.
  • PresentationCore: Den innehåller bastyper som UIElement, Visual från alla kontroller och former är härledda i PresentationFramework.dll.
  • CLR: Det gör utvecklingsprocessen produktiv genom att erbjuda funktioner som minneshantering, felhantering osv.
  • Milcore: Milcore är en del av den ohanterade koden som erbjuder tät integration med DirectX.
  • DirectX: Det är API:et på låg nivå som tillåter rendering av WPF-grafik. DirectX-samtal interagerar med drivrutiner och renderar innehållet.
  • Användare32: Det är ett kärn-API som används i stor utsträckning av många program. Den hanterar minne och processseparering. User32 hjälper dig att bestämma vilket element som ska placeras var på skärmen.
  • Kernel: Indata kommer från en signal på en enhetsdrivrutin i kärnläge och dirigeras till rätt process och genom att ansluta till Windows kärna och User32.

WPF installation

Se den här länken för att installera WPF https://www.guru99.com/download-install-visual-studio.html

Nästa i denna WPF-applikationshandledning kommer vi att bygga vår första WPF.

Hur skapar jag din första WPF-applikation?

I detta WPF-exempel kommer vi att utveckla en grundläggande WPF-applikation. Så låt oss börja den enkla implementeringen genom att följa stegen i WPF-applikationsexemplen nedan.

Steg 1) Gå till Arkiv > Projekt i Visual Studio

Skapa din första WPF-applikation

Steg 2) I det nya projektfönstret

  1. Välj WPF App
  2. Ange namn som "MyWPF"
  3. klicka på OK

Skapa din första WPF-applikation

Steg 3) Visual Studio skapar två filer som standard

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

Skapa din första WPF-applikation

MainWindow.xaml har

  1. Ett designfönster
  2. XAML-fil

Skapa din första WPF-applikation

I XAML-fönstren skrivs följande taggar som standard

Skapa din första WPF-applikation

Grid är det första elementet som standard.

MainWindow.xaml.cs innehåller motsvarande kod bakom XAML-designfilen

Skapa din första WPF-applikation

Steg 4) I verktygslådan,

  1. Dra textBox element till designfönstret
  2. En textBox visas i designfönstret
  3. Du kommer att se XAML-kod för textBox lagt till

Skapa din första WPF-applikation

Steg 5) Ändra text till "Första WPF-programmet."

Skapa din första WPF-applikation

Steg 6) Klicka på Start-knappen

Skapa din första WPF-applikation

Steg 7) Du kommer att se ett fönster vid utgång

Skapa din första WPF-applikation

Grattis! Du har designat och skapat din första WPF-applikation. Nästa i denna handledning för WPF för nybörjare kommer vi att se skillnaden mellan WPF och WinForms.

WPF vs. WinForms

WPF WinForms
Det är ett nyare ramverk, så det är mer i samklang med nuvarande standarder. Den är äldre, så den är mer beprövad.
Den är flexibel och rik på funktioner. Du kan designa mycket rika applikationer utan att koda eller köpa kontroller. Inte så funktionsrik
Utvecklare av 3rd partikontroller är fokuserade på kompatibilitet med WPF eftersom det är framtiden. Det finns många kontroller från tredje part som du kan köpa eller få gratis.
XAML låter dig skapa och redigera ditt GUI enkelt. Det gör att arbetet kan delas mellan en designer (XAML) och en programmerare (C#, ASP.net, etc.). In Windows Bildar all kod skriven på ett ställe.
WPF kan skapa användargränssnitt för båda Windows applikationer och webbapplikationer som Silverlight och XBAP. Inget sådant stöd
WPF:s inbox-kontrollsvit är begränsad In-box kontroller är mycket kraftfulla

Typ av applikationer byggda med WPF

  • WPF försöker ersätta webbformulär och Windows-formulär – appar kan byggas för att köras i en webbläsare eller ett fristående fönster
  • Windows Formulär och WPF-sidor kan samexistera i samma applikation
  • Du kan utveckla sid-/fönsterapplikationer

Snabb guide

  • WPF:s fullständiga form är Windows Presentation Foundation
  • Det är en idealisk plattform att använda om du behöver hantera olika mediatyper
  • Windows 1.0 var den första GUI-miljön från Microsoft som arbetade på DOS och förlitade sig på GDI- och USER-systemen
  • WPF i .NET erbjuder interoperabilitet med Windows Formar kontroller
  • WPF är indelade i fyra olika typer som UIElement, FrameworkElement ContentElement och FrameworkContentElement
  • De viktigaste komponenterna i en del av WPF-arkitekturen är PresentationFramework, PresentationCore, CLR, Milcore, DirectX, User32 och Kernel
  • WPF är ett nyare ramverk som jämför WinForms, så det är mer i samklang med nuvarande standarder
  • Windows Formulär och WPF-sidor kan samexistera i samma applikation