KOVÁSZNAI GERGELY ÉS BIRÓ CSABA EKF TTK Információtechnológia Tanszék Programozási környezetek Alkalmazható természettudományok oktatása a tudásalapú társadalomban TÁMOP-4.1.2.A/1-11/1-2011-0038
WPF Bevezetés A Windows Presentation Foundation (WPF) egy grafikus megjelenítő rendszer Windows-ra. A Windows Forms utódának 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 számos olyan elvre támaszkodik, amely a meglévő asztali keretrendszerek alapját képezi. Az egyik elsőre legszembetűnőbb különbség, hogy az alkalmazás megjelenéséért felelős kód elkülönül az alkalmazás funkcionalitását leíró kódtól. De ez csupán egy a számos technológiai újítás közül. 2
Számítási metódusa A WPF az ablak és az összes elem méreteinek kezelésére egy un. eszköz-független egységet (device-independent unit DIU) hozott létre. Ez egy inch egy kilencvenhatod része. Szabványos Windows DPI beállítás (96 dpi) esetében ez pontosan megfelel egy fizikailag valós pixelnek. Egy 19 inch-es LCD megjelenítő esetében, amelynek maximális felbontása 1600 x 1200 a valódi pixelsűrűség az alábbi módon számítható: 3 3
Többrétegű architektúra 4
XAML XAML (extensible Application Markup Language) egy XML alapú deklaratív jelölőnyelv, amely a.net keretrendszer modelljébe illeszkedve leegyszerűsíti a grafikus felhasználói felület (GUI) kialakítását. XAML deklaratív nyelv nyelvtani szabályrendszere nagyon egyszerű. Általános tervezési alapelve, hogy a XAML dokumentum minden eleme kivéve, ha egy attribútumot definiál - a.net osztály egy példánya. <Window x:class="helloworld.mainwindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <TextBlock Text="Hello World!" /> </Grid> </Window> 5
Elrendezések Az alkalmazás felhasználói felületének megtervezése és kivitelezése, úgy, hogy az attraktív és praktikus legyen, s mindemellett alkalmazkodjon a különböző ablak méretekhez sokszor nem könnyű feladat. A WPF egyik nagy előnye, hogy sokrétűen támogatja az ilyen helyzetek megoldását. A felhasználói felület kialakításához felhasznált elemek túlnyomó többsége, mint arról már az előzőekben is volt szó a System.Windows.FrameworkElement alaposztályból származnak. 6
Vezérlők 7
Színek és ecsetek Szín definiálása: <Color x:key="narancssargaszin" A="255" R="255" G="176" B="59" ></Color> <Color x:key="sotetpirosszin">#ffaa2c27</color> Első esetben az ARGB megadásról van szó, ahol az A(Aplhaalfa), R(Red-piros), G(Green- zöld) és B (Blue- kék) értékeket jelentik. Az első (alfa) paraméter az átlátszatlanság mértékét definiálja. Esetünkben ez a 255-ös értéknél 100 %-ot jelent. Ecsetek LinearGradientBrush RadialGradientBrush Stb 8
Alakzatok Beépített alakzatok a következők: Line (vonal), Polyline (több szakaszból álló vonal), Polygon (sokszög), Rectangle (négyszög), Ellipse (ellipszis), Path (görbe). 9
Transzformációk Transform osztály leszármazottjai: TranslateTransform (eltolási transzformáció), SkaleTransform (méretezési transzformáció), RotateTransform (forgatási transzformáció), SkewTransform (döntési transzformáció), MatrixTransform (mátrix transzformáció), TransformGroup (transzformációs csoport). 10
Effektek A WPF egyik nagy ereje az, hogy szinte minden GUI elemhez könnyedén társíthatunk különböző effekteket. Az effektek használatával könnyedén hozhatunk létre különböző hatásokat (árnyékolás, külső ragyogást, domborítást, stb.). Minden effekt a System.Windows.Media.Effects osztály leszármazottja. 11
Kioldók Kioldókat leggyakrabban stílusokhoz rendelhetünk. Segítségükkel beállíthatjuk, hogy hogyan reagáljon egy adott vezérlő egy esemény bekövetkeztére, vagy egy tulajdonság megváltozására. A kioldók a Style osztályon kívül a ControlTemplate, DataTemplate és a FrameworkElement osztályokhoz nyújtanak még támogatást. 12
Animációk Az animáció tulajdonképpen nem más, mint gyorsan egymás után vetített képek sorozata. Ezen fejezet feldolgozásához, amennyiben szükséges érdemes feleleveníteni az irányított eseményekkel, függőségi tulajdonságokkal, kioldókkal kapcsolatos ismereteinket. A WPF 42 animációs osztályt biztosít, amelyek a System.Windows.Media.Animation névtérben helyezkednek el. Ezen osztályok alapvetően az alábbi három csoportba sorolhatóak: Lineáris animációk (Linear animations) Útvonal alapú animációk (Path-based animations) Kulcskocka alapú animációk (Key frame-based animations) 13
Animációk 14
Köszönjük a figyelmet! 15