Grafikai lehetőségek WPF-ben Egyszerű grafika (Shape-ek)

Slides:



Advertisements
Hasonló előadás
II. Grafikus felhasználói interfész
Advertisements

Az operációs rendszer Egy olyan szoftver, ami a számítógépeink használatához nélkülözhetetlen. Főbb feladatai: programok betöltése, futtatása perifériák.
Számítógépes geometriai leíró nyelvek
A színek számítógépes ábrázolásának elve
Grafika. 2 Mértékek és koordináta rendszer Használjuk a RGB és QBColor függvényeket a színekhez Grafika létrehozása Load/change picture futási időben.
Számítógépes grafika Szirmay-Kalos László
Számítógépes Grafika 6. gyakorlat Programtervező informatikus (esti)‏ 2009/2010 őszi félév.
Prototípuskészítés Verilog nyelven Screen Saver Készítette: Mészáros Péter.
STÍLUSOK Tulajdonságok és értékek. Színek megadási módjai H1 {color: #CCF150} H1 {color: rgb(204,241,80)} H1 {color: rgb(80%,95%,30%)} H1 {color: red}
Grafika a programban Készítette: Pető László. Bevezetés Valójában nem a célobjektumra rajzolunk, hanem annak festővászon területére (canvas). Csak olyan.
© BZ, 2006Stíluslapok használata1 Váltsunk stílust! Stíluslapok a webszerkesztésben.
Hernyák Zoltán XML és HTML.
VISUM 11.x Közlekedéstervezési rendszer
Készítette: Nagy-Szakál Zoltán 2007.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
A HTML alapjai Havlik Barnabás Készítette:
Web-grafika II (SVG) 2. gyakorlat Kereszty Gábor.
,,Én így tanítanám az informatikát”
Rétegek használata GIMP képszerkesztő programban
Webszerkesztés Stíluslapok (CSS).
2D képszintézis és textúrák
Microsoft Access Űrlapok tervezése.
MACROMEDIA FLASH Mire használható? példák. MACROMEDIA FLASH vektor – bitmap.
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
CSS.
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Számítógépes Grafika 2. gyakorlat Programtervező informatikus (esti) 2011/2012 őszi félév.
Számítógépes grafika 3. gyakorlat.
Web-grafika (VRML) 1. gyakorlat Nyitrai Erika Varga Balázs.
Számítógépes Grafika Megvilágítás Programtervező informatikus (esti)‏
Bátyai Krisztián NetAcademia Oktatóközpont oktató, fejlesztő MCT, MCPD
Weblapok elrendezésének, dizájnjának kialakítása Borsi Katalin webfejlesztő, oktató NetAcademia Oktatóközpont.
Turbo Pascal 11..
Vizuális alkalmazások a FoxProban Páll Éva Boglárka.
1 Kedves Kolléga, kérlek, hogy PowerPoint előadásaidhoz ezt a file-t használd fel alapként! a bemutatóban már van néhány, általunk összeállított dia, melyeket.
XHTML – a tanultak összefoglalása
Rajzolás WPF alkalmazásokban
CSS A CSS bemutatása.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Előadó Karancsi Zoltán.  Egyszínű ecset  SolidColorBrush  Színátmenetes ecset  LinearGradientBrush  RadialGradientBrush.
Delphi Készítette: Rummel Szabolcs Elérhetőség:
Hyper Text Markup Language
Hyper Text Markup Language
Visual Basic 2008 Express Edition
Web-grafika II (SVG) 3. gyakorlat Kereszty Gábor.
Web-grafika II (SVG) 1. gyakorlat
Web-grafika II (SVG) 8. gyakorlat Kereszty Gábor.
Web-grafika II (SVG) 6. gyakorlat Kereszty Gábor.
Web-grafika II (SVG) 9. gyakorlat Kereszty Gábor.
Turócziné Kiscsatári Nóra
Programozás III. Grafikus felület API-k és összehasonlításuk
Html nyelv (HyperText Markup Language)
Grafika alapfogalmak.
Számítógépes grafika I. AUTOCAD alapok 2. előadás.
Bevezetés - Vonalak. Koordinátarendszer Windows form x y Az y lefelé nő Transzformáció a hagyományosra x Eltolás y Ellentett és eltolás.
Web-grafika (VRML) 1. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
Széles körben elérhető Professzionális grafikus futtató környezet.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Windows Forms alkalmazás készítése Czigléczky Gábor 2009.
V 1.0 Programozás III. Grafikus felület API-k és összehasonlításuk WPF Hello World Fontosabb UI-elemek UI-elemek tartalommodelljei UI-elemek öröklődési.
Objektumok a Word-ben. OBJEKTUMOK Objektum fogalma Objektumok létrehozása Az objektumok tulajdonságai Az objektum elhelyezkedése Objektumok formázása.
V 1.0 Programozás III. Ismétlés (Grafikai lehetőségek WPF-ben) Visual utódok.
Script nyelvek előadás
Programozás III. Gyakorlás.
Ismétlés (Grafikai lehetőségek WPF-ben) Visual utódok
Neumann János Informatikai Kar
Programozás III. Ismétlés (Grafikai lehetőségek WPF-ben)
Ismétlés (Grafikai lehetőségek WPF-ben) Visual utódok
A digitális kép bevezetés.
2. A számító- gépes grafika eszközei
téma közlemény SmartArt-ábra piros hátterű képekkel (Haladó)
Előadás másolata:

Grafikai lehetőségek WPF-ben Egyszerű grafika (Shape-ek) Programozás III. Grafikai lehetőségek WPF-ben Grafikai alapok Egyszerű grafika (Shape-ek)

Grafikai lehetőségek WPF-ben A grafikai keretrendszerek között azonosítunk azonnali és visszatartott módúakat Retained (visszatartott) mód: A grafikai primitívekből (vonalak, alakzatok…) készített jelenetet valamilyen formában a memóriában tartja, minden frame rajzolásánál a tárolt modell alapján keletkeznek a rajzolási parancsok. Az alkalmazás alakzatokat adhat hozzá vagy vehet el. Immediate (azonnali) mód: A keretrendszer nem tárolja a jelenetet, minden frame rajzolásánál az alkalmazás közvetlenül adja ki a rajzolási parancsokat. Az összes kirajzolandó dolog számon tartása az alkalmazás feladata. A WPF visszatartott módú grafikai rendszert biztosít Immediate mode: GDI/GDI+, Direct2D, Direct3D Retained mode: WPF, Direct3D (3.0 után megszüntették a retained mode-ot)

Grafikai lehetőségek WPF-ben Shape-ek (System.Windows.Shapes.Shape leszármazottak) Egyszerű, előre elkészített grafikai alakzatok Toolboxban is szerepelnek FrameworkElement utódok: input, fókusz, események… Csak kevés számú (max 10-20) objektum esetén Drawing objektumok (System.Windows.Media.Drawing névtér) Nincs belső támogatásuk input eseményekhez Nem képesek maguktól a megjelenésre, hosztoló objektumban kell őket elhelyezni Legtöbbször XAML-ból kezeljük Gyorsabb a Shape-eknél (max néhány 100 objektumig) Visual objektumok (System.Windows.Media.Visual) Legbonyolultabb, leggyorsabb (max kb. 10000 objektumig) XAML lehetőségek korlátozottak, mindig kódból kezeljük

WPF grafikai alapok – koordináta-rendszer A WPF-ben használt koordináta-rendszer origója a bal felső sarokban van – minden helyzetmegadás a tartalmazó objektum bal felső sarkához képest értendő Egy objektum helyzetét befolyásolják pl.: HorizontalAlignment, Margin, Padding, tartalmazó/tartalommenedzser beállításai, … A fentiekből együtt, ún. Layout (elhelyezési) fázis során áll össze a 2D pozíciója – nem egyszerűen elérhető és nem (nagyon nehézkesen) állítható! A Canvas tartalommenedzser támogatja az objektumok adott koordinátákra való elhelyezését – csak grafikánál!

WPF grafikai alapok – típusok (System.Windows) System.Windows névtérben sok egyszerű típus van, amit főként grafikánál használunk Nincs megjelenítésük, csak adatreprezentációs célra! (Struktúrák (érték típusok)) Point: pont a síkban (2D) X, Y Size: méret Width, Height Rect, Int32Rect: téglalap a síkban X, Y, Width, Height, Top, Bottom, Left, Right Vector: helyvektor a síkban X, Y, Length, LengthSquared

WPF grafikai alapok – színek Minden színt négy darab 8 bites érték jellemez: Vörös (R), zöld (G), kék (B) – 0-255 közötti értékeket vehetnek fel (így összesen 256^3 ≈ 16 millió szín állhat elő). Minél nagyobb a szám, annál nagyobb az adott színkomponens intenzitása. Alfa – A szín átlátszóságát határozza meg. 0-255, 0: teljesen átlátszó, 255: teljesen átlátszatlan. A szín reprezentálására a Color struktúrát használjuk Color color = Colors.Red; Color color = Color.FromArgb(20, 255, 0, 0);

WPF grafikai alapok – ecsetek A WPF grafikus lehetőségeinek mindegyike ecseteket használ a 2D felületek kitöltéseinek megadásához System.Windows.Media.Brush absztrakt osztály utódai SolidColorBrush: adott színnel való kitöltés LinearGradientBrush: lineáris átmenettel való kitöltés RadialGradientBrush: sugaras átmenettel való kitöltés ImageBrush: képpel való kitöltés DrawingBrush: rajzzal való kitöltés VisualBrush: Visual utódobjektummal való kitöltés

WPF grafikai alapok – ecsetek Forrás: http://i.msdn.microsoft.com/dynimg/IC107818.jpg

WPF grafikai alapok – ecsetek C# megadás: XAML megadás: //előre elkészített ecset: button.Background = Brushes.Red; //saját ecset előre elkészített színnel: button.Background = new SolidColorBrush(Colors.Aqua); //saját ecset saját színnel: Color almostRed = Color.FromArgb(20, 255, 0, 0); button.Background = new SolidColorBrush(almostRed); <Button Background="AliceBlue" Content="Button" .../> <Button Background="#FFFF0000" Content="Button2" .../> <Grid.Resources> <SolidColorBrush x:Key="kedvencSzinem" Color="Azure"/> </Grid.Resources> ... <Button Background="{StaticResource kedvencSzinem}"></Button>

Shape-ek Ellipse Rectangle Line Polygon Polyline Path Utóbbi négy elem Toolboxhoz adása: Toolbox  Jobb klikk  Choose Items…  WPF Components Nincs jó szerkesztési idejű támogatás hozzájuk

Shape-ek tulajdonságai Ellipse, Rectangle: Width, Height: kért dimenziók (ActualWidth, ActualHeight: az elrendezések/méretezések után megkapott dimenziók) Stroke: vonal ecsetje StrokeThickness: vonal vastagsága StrokeDashArray, StrokeEndLineCap: vonaldíszítő elemek Fill: kitöltés ecsetje RenderTransform/LayoutTransform: transzformáció az elem elrendezése és méretezése után/előtt (forgatás/nyújtás/eltolás) Line: Stroke, StrokeThickness, StrokeDashArray, StrokeEndLineCap, RenderTransform/LayoutTransform X1, X2, Y1, Y2: vonal két végpontja

Shape-ek tulajdonságai Polygon, Polyline: Stroke, StrokeThickness, StrokeDashArray, StrokeEndLineCap, Fill, RenderTransform/LayoutTransform Points: PointCollection típusú pontgyűjtemény (elemei Point típusúak) Polygon polygon = new Polygon(); //... Point[] points = new Point[3]; points[0] = new Point(0, 0); points[1] = new Point(20, 40); points[2] = new Point(70, 0); polygon.Points = new PointCollection(points); <Polygon Points="0,0 20,40 70,0" .../>

Feladat

System.Windows.Threading.DispatcherTimer Műveletek adott időközönkénti végrehajtására használjuk Interval Tulajdonság, amelynek segítségével megadhatjuk, hogy a timer milyen gyakran jelezzen (TimeSpan típusú) Start(), Stop() Függvények elindításra, leállításra Tick Esemény, ami jelzi, hogy a megadott időtartam letelt (a jelzéssel együtt az időtartam mérése újraindul) Sok más Timer típus van – ne keverjük! (System.Windows.Forms.Timer, System.Timers.Timer, System.Threading.Timer, System.Web.Ui.Timer…)