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] .
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 .
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 .
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.
A WPF számos lehetőséget kínál interaktív asztali alkalmazások létrehozására:
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:
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.
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>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.
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:
A WPF a grafikus képességek gazdag, méretezhető és rugalmas készletét mutatja be:
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 grafikaA 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.
.HÁLÓ | |
---|---|
Megvalósítások | |
Építészet | |
Infrastruktúra |
|
Microsoft nyelvek | |
Más nyelvek | |
Windows alapok | |
Alkatrészek | |
Összehasonlítások |
|
Jövő technológiái | |
Információs források |
Ingyenes és nyílt forráskódú Microsoft szoftver | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Általános információ |
| ||||||||||||
Szoftver _ |
| ||||||||||||
Licencek | |||||||||||||
Kapcsolódó témák |
| ||||||||||||
Kategória |
GUI elemek eszközkészletei (készletei) . | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
alacsony szintű |
| ||||||||||||||||||||||||||
magas szintű |
|