Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Vizuális programozás Rajzolás WPF alkalmazásokban.

Hasonló előadás


Az előadások a következő témára: "Vizuális programozás Rajzolás WPF alkalmazásokban."— Előadás másolata:

1 Vizuális programozás Rajzolás WPF alkalmazásokban

2 2D rajzolás Retained-mode graphics – a WPF gondoskodik a perzisztenciáról Rajzolási lehetőségek - szintek –Shapes –Drawings & Geometries –Visuals Közös eszközök –Ecsetek, tollak, –Transzformációs objektumok

3 Shapes - Alakzatok Magas szintű, néhány osztály, rengeteg metódus, tulajdonságok, eseménykezelés, input kezelés (egér, billentyűzet), kényelmes használat, Nagy memóriahasználat, lassú Egy sor szabályos geometriai objektum (Ellipse, Line, Polygon,PolyLine, Rectangle, Path) Megvalósítható: XAML-ben és C#-ban J.Zs.Cs.: Vizuális programozás (c) 2012

4 XAML Egyszerűen leírható XAML-ben: J.Zs.Cs.: Vizuális programozás (c) 2012

5 C# Double TetőMagasság=30; Rectangle rcHáz = new Rectangle(); rcHáz.Width=110;rcHáz.Height=80; rcHáz.Stroke = Brushes.DarkRed; rcHáz.StrokeThickness = 2; rcHáz.Fill = Brushes.LightCoral; rcHáz.SetValue(Canvas.LeftProperty, (double)(100)); rcHáz.SetValue(Canvas.TopProperty, (double)(100+TetőMagasság)); (double)(100+TetőMagasság));cvLap.Children.Add(rcHáz); J.Zs.Cs.: Vizuális programozás (c) 2012

6 RectangleGeometryLineGeometryEllipseGeometryPathGeometry

7 Z sorrend A tárolóra elhelyezett alakzatok között van egy Z-sorrend A később feltett alakzatok elfedhetik a korábban feltett alakzatokat (pl. ha az elsőnek feltett alakzatot átmozgatjuk a másodiknak feltett alakzat pozíciójába, akkor az első a második alá kerül). J.Zs.Cs.: Vizuális programozás (c) 2012

8 Shapes – Mikor használjuk? Felhasználói interakció szükséges –Egér input –ToolTip J.Zs.Cs.: Vizuális programozás (c) 2012

9 Drawings & Geometries System.Windows.Media.Drawing absztrakt osztály leszármazottaival Vékonyabb réteg (ún. pehelysúlyú szolgáltatások)  gyorsabb, kisebb erőforrásigény Nincs beépített input kezelés Valamilyen hoszt objektumban kell elhelyezni (pl. DrawingImage, DrawingBrush, DrawingVisual) Több kód szükséges Fontosabb osztályok: GeometryDrawing, ImageDrawing J.Zs.Cs.: Vizuális programozás (c) 2012

10 Felhasnálói interakció csak jelentős kódolás árán oldható meg Megvalósítható: XAML-ben és C#- ban J.Zs.Cs.: Vizuális programozás (c) 2012

11 Drawings & Geometries – Mikor használjuk? Felhasználói interakció nem szükséges (bár megoldható) Komplex, vektor alapú grafikus adatmegjelenítés szükséges J.Zs.Cs.: Vizuális programozás (c) 2012

12 Visuals System.Windows.Media.Visual leszármazottai Legvékonyabb réteg  leggyorsabb; csak elemi szolgáltatások, mindenhez meg kell írni a kódot (legtöbb kódolás) Nincs input esemény, felületmenedzser, adatkötés, alacsony szintű megközelítés Fontosabb osztályok: DrawingVisual, Viewport3DVisual, ContainerVisual J.Zs.Cs.: Vizuális programozás (c) 2012

13 Visuals Legkisebb erőforrásigény  Legjobb teljesítmény Valamilyen hoszt objektumban kell elhelyezni (pl. DrawingImage, DrawingBrush, DrawingVisual) Csak C#-ből oldható meg Rajzolási kapcsolatot/eszközkapcsolatot kell létrehozni és megnyitni, majd a rajzolást követően lezárni (using szerkezet használható) J.Zs.Cs.: Vizuális programozás (c) 2012

14 Visuals Az új objektumot el kell helyezni a logikai és a vizuális fában Át kell definiálni a VisualChildrenCount virtuális tulajdonságot Át kell definiálni a GetVisualChild virtuális metódust Mikor használjuk? Nagy mennyiségű adat gyors megjelenítésére J.Zs.Cs.: Vizuális programozás (c) 2012

15 Vonalrajzolás - Pen Legtöbbször nem kell közvetlenül előállítani, az egyes alakzatok vonaltulajdonságainak megadásával definiálhatjuk jellemzőit J.Zs.Cs.: Vizuális programozás (c) 2012

16 Vonaljellemzők megadása X1="30" Y1="30" X2="100" Y2="30" /> J.Zs.Cs.: Vizuális programozás (c) 2012

17 Brush SolidColorBrushLinearGradientBrushRadialGradientBrushImageBrush DrawingBrush – kifestés egy olyan objektummal, ami a Drawing leszármazottja VisualBrush - kifestés egy olyan objektummal, ami a Visual leszármazottja J.Zs.Cs.: Vizuális programozás (c) 2012

18 Kifestés – Brush J.Zs.Cs.: Vizuális programozás (c) 2012

19 Kifestés – Brush J.Zs.Cs.: Vizuális programozás (c) 2012

20 Transformations TranslateTransformRotateTransformScaleTransformSkewTransformMatrixTransformTransformGroupDemo

21 SkewTransform us/library/ms aspx J.Zs.Cs.: Vizuális programozás (c) 2012

22 MatrixTransform M11 M12 0 M21 M22 0 OfX OfY 1 X' = X*M11 + Y*M21 + OfX Y' = X*M12 + Y*M22 + OfY J.Zs.Cs.: Vizuális programozás (c) 2012

23 WPF animációk

24 Animáció using System.Windows.Media.Animation; Vezérlő egy vagy több tulajdonságának változtatása DependencyProperty kell legyen, pl. –WidthProperty –HeightProperty J.Zs.Cs.: Vizuális programozás (c) 2012

25 Animáció típusok Lineáris (egyenletes) változtatás két érték között: AdattípusAnimation (DoubleAnimation, ColorAnimation, ByteAnimation, stb.) Útvonal alapú: AdattípusAnimationUsingPath (DoubleAnimationUsingPath) Előredefiniált értéksor váltogatása: AdattípusAnimationUsingKeyFrames J.Zs.Cs.: Vizuális programozás (c) 2012

26 Lineáris animáció Méretváltoztató animáció Ha az egeret a kép fölé visszük, kitölti a piros vonallal megrajzolt keretet DoubleAnimation –From –To –Duration Vezérlő.BeginAnimation J.Zs.Cs.: Vizuális programozás (c) 2012

27 A felület J.Zs.Cs.: Vizuális programozás (c) 2012

28 Megvalósítás TimeSpan ts = TimeSpan.FromMilliseconds(500); DoubleAnimation da=new DoubleAnimation(); da.From = KépSzélesség; da.To = KépSzélesség + dSz; da.Duration=new Duration(ts); DoubleAnimation db=new DoubleAnimation(); db.From = KépMagasság; db.To = KépMagasság + dM; db.Duration = new Duration(ts); imKép.BeginAnimation(WidthProperty,da);imKép.BeginAnimation(HeightProperty,db); J.Zs.Cs.: Vizuális programozás (c) 2012

29 Beállítási lehetőségek FromToByDurationAccelerationRatioDecelerationRatioSpeedRatioAutoReverseBeginTimeRepeatBehaviorFillBehavior Esemény: Completed J.Zs.Cs.: Vizuális programozás (c) 2012

30 Demo KepMeretvaltoztatoTeglalapMeretvalto

31 Útvonal alapú animáció J.Zs.Cs.: Vizuális programozás (c) 2012

32

33 A felület Name="toEszköztár">


Letölteni ppt "Vizuális programozás Rajzolás WPF alkalmazásokban."

Hasonló előadás


Google Hirdetések