A windows presentation foundation a windows forms utódnak tekinthető asztali alkalmazások fejlesztése terén.
Bár a wpf számos téren eltér a tradicionálisnak tekinthető windows forms hoz képest, mégis több olyan elvre támaszkodik, amely már meglévő asztali keretrendszerek alapját képezi.
Az egyyik legnagyobb és egyben legfontosabb különbség, hogy az alkalmazás megjelenéséért felelős kód elkülönül az alkalmazás funkcióit leíró kódtol.
Szakítva a Winformos hagyományokkal, a WPF alapjául szolgáló grafikus technológia a GDI/GDI+ helyett már a DirectX.
A directx közvetlenül elérésének köszönhetően tetszőleges típusú felhasználói felületet hozhatunk létre.
Tervezhető akár komplex háromdimenziós grafika, de üzleti alkalmazások esetében is kiaknázhatók a gazdag grafikai hatások.
A hardveres gyorsításnak köszönhetően a DirectX a grafikai rendelés során amennyire lehetséges tehermentesíteni ....
WPF nek a grafikai elemei már nem raszteresek, hanem vektoralapúak.
Ebből következően az egyes elemek tetszőlegesen átméretezhetőek.
További nagy előnye hogy a vektor alapú képek kevesebb helyet foglalnak a raszteres elemekhez képest.
ugyanakkor meg kell említeni, hogy a wpf továbbra is támogatja a raszter grafikát.
wpf jellemzői
dokumentumok és nyomtatás
biztonság, hozzáférhetőség és lokalizáció
együttműködést kínál a következővel windows űrlaptervező
a direct3d grafikus alkalmazásokban használják, ahol a teljesítmány fontos
GPU-t használ megjelenítéshez
a vektor alapú grafika lehetővé teszi az átméretezést minőségromlás nélkül
A WPF támogatja a lebegőpontos logikai pixelrendszert és a 32 bites ARGB színt
stílusok és vezérlősablonok újradefiniálása
nemzetközi betűtípusok építése összetett betűtípusokból
a wpf szövegmegjelenítés segít a cleartype technológia előnyeinek kihazsnálásában
lehetővé teszi az előre rendelt szöveg gyorsítótárazási technikájának használatát a videómemóriában
erőforrás alapú megközelítés minden vezérléshez
a bemutató időzítőit a wpf inicializálja és kezeli
A videó és az animáció közötti kapcsolat szintén támogatott
a wpfben a stílus olyan tulajdonságok halamza, amelyeket a vizuális megjelenítéshez használt tartalomra kell alkalmazni.
a wpf sablonjai segítenek a dokumentumok UI érékének megváltoztatásában
a parancsok az események elvontabb és lazábban kapcsolt változatai
a wpf parancsok támogatása csökkenti a megírandó kód mennyiségét
A wpf többrétegű architektúrájának legelső szintjén a PresentationFramework.dll található.
Ezt használjuk fejlesztés közben, itt vannak implementálva a küéomvüző vezérlők .
PresentationFramework.dll számára az alaposztályokat (UIElement, Visual) a PresentationCore.dll biztosítja.
Ezekből az osztályból származnak többek között a formák (shape) és a vezérlők (controls).
A windowsvase.dll a wpf alapvető működéséhez szükséges objektumosztályokat tartalmazza (DispatcherObject, DependencyObject).
A WPF névterek a System.Windows névtérben helyezkednek el.
System.Object
A WPF összes osztálya a System.Objectből származik.
A WPF legfontosabb komponensei a PresentationFramework, PresentationCore és a milcore, tartalmazzák a wpf legfontosabb kódrészleteit.
Ezek köüzül a milcore az egyetlen nem menedzselt kódban írt komponens.
XAML
(eXtensible Application Markup Language) egy XML alapú dekleratív jelölőnyelv, amely a .NET keretrendszer modelljébe illeszkedve leegyszerűsíti a grafikus felhasználói felület kialakítását.
XAML dekleratív nyelv nyelvtani szabályrendszere nagyn egyszerű.
Általános tervezési alapelve, hogy a XAML dokumentumot definiál a .NET osztály egy példánya.
XAML nyelv hasznlatának előnyei
AZ XAML elválasztja a front-end megjelenítést a háttér logikától
Az XAML a legegyszerűbb módszer a felhasználói felületek ábrázolására
A gridsplitter rácsfelosztó vezétlő használatával lehetővé válik a program futása közben a rács sorainak és oszlopainak.
A Grid vezérlőben azon sorok,illetve oszlopok közé kell elhelyeznünk, amelyeket szeretnénk átméretezhetővé tenni.
A ResizeDirection tulajdonsággal állíthatjuk be, hogy sorokat, vagy oszlopokat szeretnénk átéretezni, a resizevehavior segítségével pedig a pontos működést tudjuk beállítani.
Ezen tulajdonság beállításánál lehetőségünk van a kép helyének, Uniform Resource Identifier, illetve relatív hivatkozással (projekthez csatolt kép) történő megadásra.
Stretch tulajdonságai:
None eredeti méretében jelenik meg, az extra részt levágja
Fill kitörlit a területet, a méretaránnyal nem foglalkozik
Uniform A méretarány megtartásával tölti ki a képet
UniformToFill Teljesen kitölti a képet a méretarány megtartásával
Slider
A csúszkák egy beállítás értékének megadását teszik lehetővé egy megadott értéktartományon belül.
Fontosabb tulajdonságai:
IsDirectionReserved
IsEnabled - engedélyezni illetve letiltanio lehet
LargeChange - pageup pagedown gombok lépésköze
Maximum, Minimum
Orientation
SmallChange - a kurzormozgató billentyűkhöz rendelt lépésközt állíthatjuk be.
Value - az aktuális érték, mindig a minimum és a maximum között van.
TreeView
Hierarchikus sorrendbe lehet vele rendezni.
A treeview egyben itemscontrol is.
Menu
A menü lehetővé teszi a leggyakrabban használt parancsok hierarchikus elrendezését.
Fontosabb tulajdonságai:
Command beállítunk egyes menüpontokhoz parancsokat.