Windows Presentation Foundation

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 26. april 2014; checks kræver 26 redigeringer .

Windows Presentation Foundation ( WPF ) er en analog af WinForms, et system til opbygning af Windows -klientapplikationer med visuelt attraktive brugerinteraktionsmuligheder, et grafisk (præsentations) undersystem som en del af .NET Framework (startende med version 3.0 ), ved hjælp af XAML -sproget [1] .

WPF er forudinstalleret på Windows Vista ( .NET Framework 3.0), Windows 7 ( .NET Framework 3.5 SP1), Windows 8 (.NET Framework 4.0 og 4.5), Windows 8.1 (.NET Framework 4.5.1) og Windows 10 (.NET Ramme 4.7). Med WPF kan du oprette en bred vifte af både selvstændige og browserbaserede applikationer [2] .

Teknologifunktioner

I hjertet af WPF er et vektorgengivelsessystem, der ikke afhænger af outputenhedens opløsning og blev skabt under hensyntagen til mulighederne i moderne grafikhardware. WPF leverer værktøjer til at skabe en visuel grænseflade, herunder XAML (eXtensible Application Markup Language), kontroller, databinding, layout, 2D- og 3D-grafik, animation, stilarter, skabeloner, dokumenter, tekst, multimedier og dekoration [2] .

Grafikteknologien bag WPF er DirectX , i modsætning til Windows Forms , som bruger GDI / GDI+ [3] . Ydeevnen af ​​WPF er højere end GDI+ på grund af brugen af ​​grafikhardwareacceleration gennem DirectX .

Der er også en afisoleret version af CLR kaldet WPF/E , også kendt som Silverlight .

Brug af XAML -markering

XAML er et deklarativt grænsefladebeskrivelsessprog baseret på XML . En model til adskillelse af kode og design er også blevet implementeret, hvilket giver programmør og designer mulighed for at samarbejde. Derudover er der indbygget understøttelse af elementstile, og selve elementerne er let opdelt i kontrolelementer på andet niveau , som igen er opdelt ned til niveauet af vektorformer og egenskaber/handlinger. Dette gør det nemt at style ethvert element, såsom en knap .

Udviklingsværktøjer

Ethvert .NET -kompatibelt sprog er påkrævet for at arbejde med WPF . Denne liste indeholder mange sprog: C# , F# , VB.NET , C++ , Ruby , Python , Delphi (Prism) , Lua og mange flere. Til fuldgyldigt arbejde kan både Visual Studio og Expression Blend bruges . Førstnævnte er kodningsorienteret, og sidstnævnte er designorienteret og giver dig mulighed for at gøre mange ting uden at skulle redigere XAML manuelt . Eksempler på dette er animation, styling, tilstande, oprettelse af kontroller og så videre.

Funktioner

WPF tilbyder en bred vifte af muligheder for at skabe interaktive desktop-applikationer:

Databinding

Det er en fleksibel mekanisme, der giver dig mulighed for at linke forskellige data gennem XAML markup-udvidelser (fra kontrolegenskabsværdier til offentlige egenskaber, der implementerer databasefelter gennem Entity Framework ). Databinding er repræsenteret af Binding -klassen , som igen er nedarvet fra MarkupExtension , som giver dig mulighed for at bruge bindinger ikke kun i kode, men også i markup:

<StackPanel Orientation= "Horizontal" > <Slider x:Name= "slider" Width= "200" Minimum= "1" Maximum= "100" Værdi= "60" />         <TextBox Text= "{Binding ElementName=slider, Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel>

Ud over hovedbindingsklassen implementerer WPF adskillige andre bindingsmekanismer:

  • MultiBinding  - giver dig mulighed for at oprette flere bindinger ved at angive flere elementer
  • TemplateBinding  - bruges i skabeloner til at binde en egenskab for et element inde i en skabelon med en egenskab for det element, som skabelonen anvendes på
  • PriorityBinding  - rangerer listen over bindinger og vælger fra dem den egenskab (i henhold til prioritet), som bindingen skal anvendes på. Hvis bindingen med den højeste prioritet med succes returnerer en værdi, er der ingen grund til at behandle de andre bindinger på listen.

Stilarter

De giver dig mulighed for at oprette stylingelementer og bruges som regel kun i markup:

<Button>         <Button.Style>             <Style TargetType= "Button" > <Setter Property= "FontSize" Value= "20" />                 <Setter Property= "Foreground" Value= "LimeGreen" />             </Style>         </ Button.Style>     </Button>

Hvis stilen er indstillet på ressourcer (såsom en ressourceordbog), kan x:Key -attributten bruges til at angive en unik nøgle. Derefter, på det kontrolelement, som du vil anvende typografien på, skal du bruge opmærkningsudvidelsen StaticResource til at binde til den typografi. Hvis du bruger denne teknik, vil stilarterne ikke rode op i markeringen.

Kontrolskabeloner

De giver dig mulighed for at ændre det grafiske design af elementer og er repræsenteret af ControlTemplate -klassen . I modsætning til stilarter kan du ændre ikke kun den grafiske repræsentation af et element, men også dets struktur. I dette tilfælde angives kontrolskabelonen gennem Skabelonegenskaben .

Et simpelt eksempel på en rund knap:

<Button Content= "Hej!" Background= "LimeGreen" Foreground= "White" >         <Button.Template>             <ControlTemplate TargetType= "Button" >                 <Grid>                     <Ellipse Fill= "{TemplateBinding Background}" Stroke= "{TemplateBinding BorderBrush}" Stretch= "Fyld" />                     <ContentPresenter VerticalAlignment= "Center" HorizontalAlignment= "Center" />                 </Grid>             </ControlTemplate>         </Button.Template>     </Button>

Dataskabeloner

I modsætning til kontrolskabeloner er de indstillet til en specifik datakontekst (som i blokkontroller indstilles via egenskaben DataContext og i listekontroller via ItemsSource ). Selve dataskabelonen er repræsenteret af DataTemplate -klassen . Egenskaben DataType bruges til at udpege den datatype, som skabelonen skal anvendes på.

Ressourcer

Ressourcesystemet giver dig mulighed for at kombinere skabeloner, stile, pensler, animationer og mange andre interaktive elementer, hvilket i høj grad forenkler arbejdet med dem. Ressourcer indstilles i egenskaben Ressourcer i FrameworkElement-klassen, hvorfra alle kontroller, layoutpaneler og endda Application-klassen er nedarvet. Dette giver dig mulighed for at oprette et lagdelt ressourcesystem:

  • ressourcer i et objekt - kun gyldigt for det objekt
  • ressourcer inde i layoutpanelet (for eksempel Grid) - giver dig mulighed for at indstille ressourcekontekstgrænsen på niveauet af dette panel
  • ressourcer inde i vinduet - hvis applikationen bruger flere vinduer, vil ressourcerne i et vindue ikke være tilgængelige for ressourcerne i et andet vindue
<Window.Resources> <SolidColorBrush x:Key= "SampleBrush" Color= "LimeGreen" /> </Window.Resources> ... <Button Content= "Hej!" Background= "{StaticResource SampleBrush}" />
  • applikationsressourcer - tilgængelige overalt (normalt angivet i en separat ressourceordbog)

Grafik

WPF introducerer et rigt, skalerbart og fleksibelt sæt af grafikfunktioner:

  • Opløsning og enhedsuafhængig grafik. Den grundlæggende måleenhed i WPF-grafiksystemet er den enhedsuafhængige pixel, som er 1/96 tomme, uanset den faktiske skærmopløsning.
  • Yderligere understøttelse af grafik og animation. WPF forenkler grafikprogrammering ved automatisk at administrere animationer. Udvikleren bør ikke beskæftige sig med behandling af animationsscener, render loops og bilineær interpolation
  • hardwareacceleration. WPF-grafiksystemet udnytter grafikhardwaren til at reducere CPU-brug.
2D-grafik

WPF giver et bibliotek med almindelige 2D-former tegnet med vektorer, såsom rektangler og ellipser, samt grafiske stier. Og i deres funktionalitet implementerer former mange af de funktioner, der er tilgængelige for konventionelle kontroller.

2D-grafik i WPF inkluderer visuelle effekter såsom gradienter, bitmaps, tegninger, videokunst, rotation, skalering og skævhed.

3D-grafik

WPF inkluderer også 3D-gengivelsesfunktioner integreret med 2D-grafik for at skabe rigere og mere interessante brugergrænseflader.

Versioner

  • WPF 3.0 (november 2006)
  • WPF 3.5 (november 2007)
  • WPF 3.5 SP1 (august 2008)
  • WPF 4 (april 2010)
  • WPF 4.5 (august 2012)
  • WPF 4.5.1 (oktober 2013)
  • WPF 4.5.2 (maj 2014)
  • WPF 4.6 (juli 2015)

Se også

Litteratur

  • Matthew McDonald. WPF: Windows Presentation Foundation i .NET 4.5 med C# 5.0 Eksempler for professionelle, 4. udgave = Pro WPF 4.5 i C# 2012: Windows Presentation Foundation i .NET 4.5, 4. udgave. - M. : "Williams" , 2013. - 1024 s. - ISBN 978-5-8459-1854-3 .
  • Matthew McDonald. WPF: Windows Presentation Foundation i .NET 4.0 med C# 2010 Eksempler for professionelle = Pro WPF i C# 2010: Windows Presentation Foundation med .NET 4.0. - M. : "Williams" , 2011. - S. 1024. - ISBN 978-5-8459-1657-0 .
  • Andersen, Chris. Grundlæggende om Windows Presentation Foundation. - Sankt Petersborg. : BHV-Petersburg , 2008. - 432 s. — ISBN 978-5-9775-0265-8 .
  • Daniel M. Solis. Illustreret WPF. - USA: Apress , 2009. - 508 s. — ISBN 978-1-4302-1910-1 .

Links

Noter

  1. Udtales "zaml"
  2. 12 MSDN . Introduktion til WPF . Microsoft. Hentet 15. november 2010. Arkiveret fra originalen 14. februar 2012.
  3. Matthew McDonald. WPF: Windows Presentation Foundation i .NET 3.5 med C# 2008 Eksempler for professionelle = Pro WPF i C# 2008: Windows Presentation Foundation med .NET 3.5. - 2. - M. : "Williams" , 2008. - S. 25. - 928 s. - ISBN 978-5-8459-1429-3 .