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] .
Î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 .
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 .
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.
WPF oferă o gamă largă de opțiuni pentru crearea de aplicații desktop interactive:
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:
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.
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>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.
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:
WPF introduce un set bogat, scalabil și flexibil de capabilități grafice:
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ă 3DWPF include, de asemenea, capabilități de randare 3D integrate cu grafică 2D pentru a crea interfețe de utilizator mai bogate și mai interesante.
.NET | |
---|---|
Implementări | |
Arhitectură | |
Infrastructură | |
Limbi Microsoft | |
Alte limbi | |
Fundamente Windows | |
Componente | |
Comparații |
|
Tehnologii viitoare | |
Resurse informaționale |
Software gratuit și open source Microsoft | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
informatii generale |
| ||||||||||||
software _ |
| ||||||||||||
Licențe | |||||||||||||
subiecte asemănătoare |
| ||||||||||||
Categorie |
de elemente GUI | Seturi de instrumente (seturi)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nivel scăzut |
| ||||||||||||||||||||||||||
nivel înalt |
|