Windows Presentation Foundation

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2014. április 26-án felülvizsgált verziótól ; az ellenőrzések 26 szerkesztést igényelnek .

A Windows Presentation Foundation ( WPF ) a WinForms analógja, egy olyan rendszer, amely vizuálisan vonzó felhasználói interakciós képességekkel rendelkező Windows kliens alkalmazásokat készít, grafikus (prezentációs) alrendszer a .NET-keretrendszer részeként (a 3.0 -s verziótól kezdve ), XAML nyelv használatával. [1] .

A WPF előre telepítve van a Windows Vista ( .NET Framework 3.0), a Windows 7 ( .NET Framework 3.5 SP1), a Windows 8 (.NET Framework 4.0 és 4.5), a Windows 8.1 (.NET Framework 4.5.1) és a Windows 10 (.NET Keretrendszer 4.7). A WPF segítségével számos önálló és böngészőalapú alkalmazást is létrehozhat [2] .

Technológiai jellemzők

A WPF középpontjában egy vektorrenderelő rendszer áll, amely nem függ a kimeneti eszköz felbontásától, és a modern grafikus hardver képességeit figyelembe véve jött létre. A WPF eszközöket biztosít vizuális interfész létrehozásához, beleértve az XAML -t (eXtensible Application Markup Language), vezérlőket, adatkötést, elrendezéseket, 2D és 3D grafikákat, animációkat, stílusokat, sablonokat, dokumentumokat, szöveget, multimédiát és dekorációt [2] .

A WPF mögött meghúzódó grafikus technológia a DirectX , szemben a Windows Forms -szal , amely GDI / GDI+-t használ [3] . A DirectX -en keresztüli grafikus hardveres gyorsítás miatt a WPF teljesítménye nagyobb, mint a GDI+ é .

A CLR - nek van egy lecsupaszított változata is WPF/E néven, más néven Silverlight .

XAML jelölés használata

Az XAML egy deklaratív interfészleíró nyelv, amely XML -en alapul . A kód és a tervezés szétválasztására szolgáló modellt is megvalósítottak, amely lehetővé teszi a programozó és a tervező együttműködését. Ezenkívül beépített támogatással rendelkezik az elemstílusokhoz, és maguk az elemek könnyen oszthatók második szintű vezérlőkre , amelyek viszont a vektor alakzatok és tulajdonságok / műveletek szintjéig vannak felosztva. Ez megkönnyíti bármely elem, például egy gomb stílusának kialakítását .

Fejlesztő eszközök

A WPF használatához bármilyen .NET - kompatibilis nyelv szükséges . Ez a lista számos nyelvet tartalmaz: C# , F# , VB.NET , C++ , Ruby , Python , Delphi (Prism ) , Lua és még sok más. A teljes értékű munkához a Visual Studio és az Expression Blend is használható . Az előbbi kódolás-, az utóbbi pedig tervezés-orientált, és sok dolgot lehetővé tesz anélkül, hogy manuálisan kellene szerkesztenie az XAML -t . Ilyen például az animáció, a stílus, az állapotok, a vezérlők létrehozása és így tovább.

Jellemzők

A WPF számos lehetőséget kínál interaktív asztali alkalmazások létrehozására:

Adatkötés

Ez egy rugalmas mechanizmus, amely lehetővé teszi különféle adatok összekapcsolását XAML jelölőbővítményeken keresztül (a vezérlőtulajdonságok értékétől az adatbázismezőket az Entity Framework -en keresztül megvalósító nyilvános tulajdonságokig ). Az adat-összerendelést a Binding osztály képviseli , amely viszont a MarkupExtension -től öröklődik , amely lehetővé teszi az összerendelések használatát nem csak a kódban, hanem a jelölésben is:

<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>

A fő Binding osztályon kívül a WPF számos más kötési mechanizmust is megvalósít:

  • MultiBinding  – lehetővé teszi több kötés létrehozását több elem megadásával
  • TemplateBinding  – a sablonokban használatos, hogy egy sablonon belüli elem egy tulajdonságát összekapcsolja annak az elemnek a tulajdonságával, amelyre a sablont alkalmazzák.
  • PriorityBinding  - rangsorolja a kötések listáját, és kiválasztja belőlük azt a tulajdonságot (prioritás szerint), amelyre a kötést alkalmazni fogja. Ha a legmagasabb prioritású összerendelés sikeresen visszaad egy értéket, akkor nincs szükség a lista többi összerendelésének feldolgozására.

Stílusok

Lehetővé teszik stíluselemek létrehozását, és általában csak a jelölésben használatosak:

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

Ha a stílus erőforrásokon van beállítva (például egy erőforrás szótárban), akkor az x:Key attribútum használható egyedi kulcs megadására. Ezután azon a vezérlőn, amelyre alkalmazni szeretné a stílust, a StaticResource jelölőbővítményt kell használnia a stílushoz való kötéshez . Ha ezt a technikát használja, akkor a stílusok nem fogják összezavarni a jelölést.

Vezérlősablonok

Lehetővé teszik az elemek grafikai kialakításának megváltoztatását, és a ControlTemplate osztály képviseli őket . A stílusoktól eltérően nem csak egy elem grafikus ábrázolását, hanem szerkezetét is megváltoztathatja. Ebben az esetben a vezérlősablon a Template tulajdonságon keresztül van megadva .

Egy egyszerű példa egy kerek gombra:

<Button Content= "Hé!" Background= "LimeGreen" Foreground= "White" >         <Button.Template>             <ControlTemplate TargetType= "Button" >                 <Rács>                     <Ellipse Fill= "{TemplateBinding Background}" Stroke= "{TemplateBinding BorderBrush}" Stretch= "Kitöltés" />                     <ContentPresenter VerticalAlignment= "Center" HorizontalAlignment= "Center" />                 </Rács>             </ControlTemplate>         </Button.Template>     </Button>

Adatsablonok

A vezérlősablonokkal ellentétben ezek egy adott adatkörnyezethez vannak beállítva (amely a blokkvezérlőkben a DataContext tulajdonságon , a listavezérlőknél pedig az ItemsSource -on keresztül történik ). Magát az adatsablont a DataTemplate osztály képviseli . A DataType tulajdonság annak az adattípusnak a kijelölésére szolgál, amelyre a sablont alkalmazni kell.

Források

Az erőforrásrendszer lehetővé teszi a sablonok, stílusok, ecsetek, animációk és sok más interaktív elem kombinálását, ami nagyban leegyszerűsíti a velük végzett munkát. Az erőforrások a FrameworkElement osztály Resources tulajdonságában vannak beállítva , amelyből az összes vezérlő, elrendezési panel és még az Application osztály is öröklődik. Ez lehetővé teszi egy réteges erőforrásrendszer létrehozását:

  • erőforrások egy objektumon belül – csak az adott objektumra érvényes
  • erőforrások az elrendezési panelen belül (például Rács) - lehetővé teszi az erőforrás-kontextus határának beállítását a panel szintjén
  • erőforrások az Ablak ablakon belül - ha az alkalmazás több ablakot használ, akkor az egyik ablak erőforrásai nem lesznek elérhetők egy másik ablak erőforrásai számára
<Window.Resources> <SolidColorBrush x:Key= "SampleBrush" Color= "LimeGreen" /> </Window.Resources> ... <Button Content= "Hé!" Background= "{StaticResource SampleBrush}" />
  • alkalmazási erőforrások - mindenhol elérhető (általában külön forrásszótárban van megadva)

Grafika

A WPF a grafikus képességek gazdag, méretezhető és rugalmas készletét mutatja be:

  • Felbontás és eszközfüggetlen grafika. A WPF grafikus rendszerben az alapvető mértékegység az eszközfüggetlen pixel, amely a tényleges képernyőfelbontástól függetlenül a hüvelyk 1/96-a.
  • További grafikák és animációk támogatása. A WPF leegyszerűsíti a grafikus programozást az animációk automatikus kezelésével. A fejlesztő ne foglalkozzon animációs jelenetek feldolgozásával, renderelési ciklusokkal és bilineáris interpolációval
  • hardveres gyorsítás. A WPF grafikus rendszer kihasználja a grafikus hardvert a CPU-használat csökkentésére.
2D grafika

A WPF vektorokkal, például téglalapokkal és ellipszisekkel, valamint grafikus útvonalakkal rajzolt általános 2D alakzatok könyvtárát biztosítja. Funkcionalitásukban pedig az alakzatok számos olyan funkciót valósítanak meg, amelyek a hagyományos vezérlők számára elérhetők.

A WPF 2D grafikája olyan vizuális effektusokat tartalmaz, mint a színátmenetek, bittérképek, rajzok, videoművészet, elforgatás, méretezés és ferdeség.

3D grafika

A WPF 2D grafikával integrált 3D renderelési képességeket is tartalmaz, így gazdagabb és érdekesebb felhasználói felületeket hozhat létre.

Verziók

  • WPF 3.0 (2006. november)
  • WPF 3.5 (2007. november)
  • WPF 3.5 SP1 (2008. augusztus)
  • WPF 4 (2010. április)
  • WPF 4.5 (2012. augusztus)
  • WPF 4.5.1 (2013. október)
  • WPF 4.5.2 (2014. május)
  • WPF 4.6 (2015. július)

Lásd még

Irodalom

  • Matthew McDonald. WPF: Windows Presentation Foundation in .NET 4.5, C# 5.0 Példák Professionals, 4th Edition = Pro WPF 4.5 in C# 2012: Windows Presentation Foundation in .NET 4.5, 4. kiadás. - M. : "Williams" , 2013. - 1024 p. - ISBN 978-5-8459-1854-3 .
  • Matthew McDonald. WPF: Windows Presentation Foundation in .NET 4.0 with C# 2010 Példák szakembereknek = Pro WPF in C# 2010: Windows Presentation Foundation .NET 4.0-val. - M. : "Williams" , 2011. - S. 1024. - ISBN 978-5-8459-1657-0 .
  • Anderson, Chris. A Windows Presentation Foundation alapjai. - Szentpétervár. : BHV-Petersburg , 2008. - 432 p. — ISBN 978-5-9775-0265-8 .
  • Daniel M. Solis. Illusztrált WPF. - Amerikai Egyesült Államok: Apress , 2009. - 508 p. — ISBN 978-1-4302-1910-1 .

Linkek

Jegyzetek

  1. Kimondva: "zaml"
  2. 12 MSDN . Bevezetés a WPF-be . Microsoft. Letöltve: 2010. november 15. Az eredetiből archiválva : 2012. február 14..
  3. Matthew McDonald. WPF: Windows Presentation Foundation in .NET 3.5 with C# 2008 Példák szakembereknek = Pro WPF in C# 2008: Windows Presentation Foundation with .NET 3.5. - 2. - M. : "Williams" , 2008. - S. 25. - 928 p. - ISBN 978-5-8459-1429-3 .