Windows Presentation Foundation

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 26 aprilie 2014; verificările necesită 26 de modificări .

Windows Presentation Foundation ( WPF ) este un analog al WinForms, un sistem pentru construirea de aplicații client Windows cu capabilități de interacțiune cu utilizatorul atractive din punct de vedere vizual, un subsistem grafic (de prezentare) ca parte a .NET Framework (începând cu versiunea 3.0 ), folosind limbajul XAML [1] .

WPF este preinstalat pe Windows Vista ( .NET Framework 3.0), Windows 7 ( .NET Framework 3.5 SP1), Windows 8 (.NET Framework 4.0 și 4.5), Windows 8.1 (.NET Framework 4.5.1) și Windows 10 (.NET Cadrul 4.7). Cu WPF, puteți crea o mare varietate de aplicații atât autonome, cât și bazate pe browser [2] .

Caracteristicile tehnologiei

În centrul WPF se află un sistem de redare vectorială care nu depinde de rezoluția dispozitivului de ieșire și a fost creat ținând cont de capacitățile hardware-ului grafic modern. WPF oferă instrumente pentru crearea unei interfețe vizuale, inclusiv XAML (eXtensible Application Markup Language), controale, legare de date, machete, grafică 2D și 3D, animație, stiluri, șabloane, documente, text, multimedia și decorațiuni [2] .

Tehnologia grafică din spatele WPF este DirectX , spre deosebire de Windows Forms , care utilizează GDI / GDI+ [3] . Performanța WPF este mai mare decât cea a GDI+ datorită utilizării accelerației hardware grafice prin DirectX .

Există, de asemenea, o versiune redusă a CLR numită WPF/E , cunoscută și sub numele de Silverlight .

Folosind marcajul XAML

XAML este un limbaj declarativ de descriere a interfeței bazat pe XML . De asemenea, a fost implementat un model pentru separarea codului și designului, permițând programatorului și proiectantului să coopereze. În plus, există suport încorporat pentru stilurile de elemente, iar elementele în sine sunt împărțite cu ușurință în controale de al doilea nivel , care, la rândul lor, sunt împărțite la nivelul formelor vectoriale și proprietăților / acțiunilor. Acest lucru facilitează stilul oricărui element, cum ar fi un Button .

Instrumente de dezvoltare

Orice limbă compatibilă .NET este necesară pentru a funcționa cu WPF . Această listă include multe limbi: C# , F# , VB.NET , C++ , Ruby , Python , Delphi (Prism) , Lua și multe altele. Pentru lucru cu drepturi depline, pot fi utilizate atât Visual Studio , cât și Expression Blend . Primul este orientat spre codificare, iar cel de-al doilea este orientat spre design și vă permite să faceți multe lucruri fără a fi nevoie să editați manual XAML . Exemple în acest sens sunt animația, stilul, stările, crearea de controale și așa mai departe.

Caracteristici

WPF oferă o gamă largă de opțiuni pentru crearea de aplicații desktop interactive:

Legarea datelor

Este un mecanism flexibil care vă permite să legați diferite date prin extensii de markup XAML (de la valorile proprietăților de control la proprietățile publice care implementează câmpurile bazei de date prin Entity Framework ). Legarea datelor este reprezentată de clasa Binding , care la rândul ei este moștenită de la MarkupExtension , care vă permite să utilizați legături nu numai în cod, ci și în markup:

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

Pe lângă clasa principală Binding, WPF implementează alte câteva mecanisme de legare:

  • MultiBinding  - vă permite să creați mai multe legături prin specificarea mai multor elemente
  • TemplateBinding  - folosit în șabloane pentru a lega o proprietate a unui element din interiorul unui șablon cu o proprietate a elementului la care este aplicat șablonul
  • PriorityBinding  - ierarhizează lista de legături și selectează din ele proprietatea (în funcție de prioritate) căreia i se va aplica legarea. Dacă legarea cu cea mai mare prioritate returnează cu succes o valoare, atunci nu este nevoie să procesăm celelalte legături din listă.

Stiluri

Ele vă permit să creați elemente de stil și, de regulă, sunt utilizate numai în marcare:

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

Dacă stilul este setat pe resurse (cum ar fi un dicționar de resurse), atunci atributul x:Key poate fi utilizat pentru a specifica o cheie unică. Apoi, pe controlul căruia doriți să aplicați stilul, trebuie să utilizați extensia de marcare StaticResource pentru a vă lega la acel stil. Dacă utilizați această tehnică, atunci stilurile nu vor aglomera marcajul.

Șabloane de control

Acestea vă permit să schimbați designul grafic al elementelor și sunt reprezentate de clasa ControlTemplate . Spre deosebire de stiluri, puteți modifica nu numai reprezentarea grafică a unui element, ci și structura acestuia. În acest caz, șablonul de control este specificat prin proprietatea Template .

Un exemplu simplu de buton rotund:

<Button Content= "Hei!" Background= "LimeGreen" Prim- plan= "Alb" >         <Button.Template>             <ControlTemplate TargetType= "Button" >                 <Grid>                     <Elipse Fill= "{TemplateBinding Background}" Stroke= "{TemplateBinding BorderBrush}" Stretch= "Umplere" />                     <ContentPresenter VerticalAlignment= „Center” HorizontalAlignment= „Centru” />                 </Grid>             </ControlTemplate>         </Button.Template>     </Button>

Șabloane de date

Spre deosebire de șabloanele de control, acestea sunt setate pentru un anumit context de date (care în controalele bloc este setat prin proprietatea DataContext , iar în controalele listă prin ItemsSource ). Șablonul de date în sine este reprezentat de clasa DataTemplate . Proprietatea DataType este utilizată pentru a desemna tipul de date la care urmează să fie aplicat șablonul.

Resurse

Sistemul de resurse vă permite să combinați șabloane, stiluri, pensule, animații și multe alte elemente interactive, ceea ce simplifică foarte mult lucrul cu acestea. Resursele sunt setate în proprietatea Resources a clasei FrameworkElement, de la care sunt moștenite toate controalele, panourile de aspect și chiar clasa Application. Acest lucru vă permite să creați un sistem de resurse stratificat:

  • resurse din cadrul unui obiect - valabil doar pentru acel obiect
  • resurse în interiorul panoului de aspect (de exemplu, Grid) - vă permite să setați limita contextului resursei la nivelul acestui panou
  • resurse în interiorul ferestrei ferestre - dacă aplicația folosește mai multe ferestre, atunci resursele unei ferestre nu vor fi disponibile pentru resursele altei ferestre
<Window.Resources> <SolidColorBrush x:Key= „SampleBrush” Color= „LimeGreen” /> </Window.Resources> ... <Button Content= "Hei!" Background= "{StaticResource SampleBrush}" />
  • resurse de aplicație - disponibile peste tot (de obicei specificate într-un dicționar de resurse separat)

Grafică

WPF introduce un set bogat, scalabil și flexibil de capabilități grafice:

  • Rezoluție și grafică independentă de dispozitiv. Unitatea de măsură de bază în sistemul grafic WPF este pixelul independent de dispozitiv, care este 1/96 de inch, indiferent de rezoluția reală a ecranului.
  • Suport suplimentar pentru grafică și animație. WPF simplifică programarea grafică prin gestionarea automată a animațiilor. Dezvoltatorul nu ar trebui să se ocupe de procesarea scenelor de animație, bucle de randare și interpolare biliniară
  • accelerare hardware. Sistemul grafic WPF profită de hardware-ul grafic pentru a reduce utilizarea CPU.
Grafică 2D

WPF oferă o bibliotecă de forme 2D comune desenate cu vectori, cum ar fi dreptunghiuri și elipse, precum și trasee grafice. Și în funcționalitatea lor, formele implementează multe dintre caracteristicile care sunt disponibile controalelor convenționale.

Grafica 2D în WPF include efecte vizuale, cum ar fi gradienți, hărți de biți, desene, artă video, rotație, scalare și înclinare.

Grafică 3D

WPF include, de asemenea, capabilități de randare 3D integrate cu grafică 2D pentru a crea interfețe de utilizator mai bogate și mai interesante.

Versiuni

  • WPF 3.0 (noiembrie 2006)
  • WPF 3.5 (noiembrie 2007)
  • WPF 3.5 SP1 (august 2008)
  • WPF 4 (aprilie 2010)
  • WPF 4.5 (august 2012)
  • WPF 4.5.1 (octombrie 2013)
  • WPF 4.5.2 (mai 2014)
  • WPF 4.6 (iulie 2015)

Vezi și

Literatură

  • Matthew McDonald. WPF: Windows Presentation Foundation în .NET 4.5 cu C# 5.0 Exemple pentru profesioniști, ediția a 4-a = Pro WPF 4.5 în C# 2012: Windows Presentation Foundation în .NET 4.5, ediția a patra. - M. : „Williams” , 2013. - 1024 p. - ISBN 978-5-8459-1854-3 .
  • Matthew McDonald. WPF: Windows Presentation Foundation în .NET 4.0 cu C# 2010 Exemple pentru profesioniști = Pro WPF în C# 2010: Windows Presentation Foundation cu .NET 4.0. - M. : „Williams” , 2011. - S. 1024. - ISBN 978-5-8459-1657-0 .
  • Anderson, Chris. Elementele fundamentale ale Windows Presentation Foundation. - Sankt Petersburg. : BHV-Petersburg , 2008. - 432 p. — ISBN 978-5-9775-0265-8 .
  • Daniel M. Solis. WPF ilustrat. - Statele Unite ale Americii: Apress , 2009. - 508 p. — ISBN 978-1-4302-1910-1 .

Link -uri

Note

  1. Pronunțat „zaml”
  2. 12 MSDN . Introducere în WPF . Microsoft. Consultat la 15 noiembrie 2010. Arhivat din original pe 14 februarie 2012.
  3. Matthew McDonald. WPF: Windows Presentation Foundation în .NET 3.5 cu C# 2008 Exemple pentru profesioniști = Pro WPF în C# 2008: Windows Presentation Foundation cu .NET 3.5. - al 2-lea. - M. : „Williams” , 2008. - S. 25. - 928 p. - ISBN 978-5-8459-1429-3 .