Személyes eszközök
Keresés

 

A InfoWiki wikiből

(Változatok közti eltérés)

Aroan (vita | szerkesztései)
(Új oldal, tartalma: „<cim cim3="XAML Alapok" cim2="Windows Presentation Foundation" cim1="Windows Forms Reloaded" prev="wpf:page22" next="wpf:page24" kep="hz_csik.png"...”)
Újabb szerkesztés →

A lap 2008. december 28., 10:30-kori változata


Animációk

Az animációk teszik lehetővé az igazi dinamikus viselkedésű felhasználói felület tervezését. Gyakori effetkusok amikor egy gomb fölé húzott egér hatására a gomb háttere felfénylik, az ikonok nagyobbak lesznek, stb.

Az animációk kezelése a WPF részét képezi, ezért nem kell kódot írni, időzítőket használni, stb. E helyett be kell konfigurálni, megadni mennyi idő alatt milyen változások történjenek. Az animációk ideje alatt a vezérlők megmaradnak vezérlőkenk, tehát amíg pl egy nyomógomb (button) animálódik, addig is megmarad nyomógomb marad, vagyis rá lehet klikkelni, eseményeket vált ki, stb.

A rendszer alapötlete az jellemző-alapú animáció (property-based animation). Ennek során adott idő alatt egy dependecy-property értéke változik meg egy kezdőértékről egy végértékre, folyamatos átmenet során. Pl. egy gomb háttérszínét is egy ilyen dep prop írja le, melynek értéke #f981a0-ről #9b0028-re változik 1 másodperc alatt. Ekkor azt fogjuk látni, hogy a gomb színe fokozatosan világos vörösről sötét vörösre vált. A gomb szélességét is egy dep prop írja le, amely 20-ról 40-re vált, akkor azt fogjuk látni, hogy a gomb szélessége folyamatosan megnő. Az animálás során egy időben több dep prop is változhat, illetve megoldható, hogy a különböző dep prop értékek más-más időintervallum alatt érjék el a végértéket.

A rossz hír az, hogy ha olyan animációt szeretnénk elvégezni, amely nem írható le dependency property változtatással, akkor a baj elég nagy. Ugyanis ezen rendszerrel egyszerűen csakis ezek oldhatók meg. Tehát a DOOM IV megírására ez nem feltétlenül alkalmas.

Triggerek

Az animációkat el is kell indítani. Ehhez triggerek alkalmasak. Trigger lehet pl "ha föléhúzzák az egeret", vagy "ha kattintanak" stb. Általában olyanok lehetnek triggerek, amelyek eseményeket váltanak ki, tehát másképp fogalmazva egy esemény jelentkezése indíthat el egy animációt. Az esemény és az animáció ugyanazon a vezérlőn van jelen, tehát "ha erre a gombra kattintanak, akkor ugyanezen a gomb sötétjen el" jellegű dologra lehet gondolni. Az "ha a betöltés gombra kattintanak, akkor a mentés gomb sötétedjen el" dolog már kicsit bonyolultabb eset.

Másik mód, amikor kódból direkt kényszerítjük ki egy animáció indítását. Így lehet egyszerűen elérni, hogy egy gombra kattintás hatására egy másik vezérlőn induljon el egy animáció.

Animációs osztály

Amikor egy dependency property értékét kell egy kezdőértéktől egy végértékig módosítani, amely mondjuk double típusú érték, akkor szükség van egy olyan animációs osztályra (animation class), amely képes double típusú értéket adott időintervallumban eltolni ezen intervallumban. Ha a típus ennél bonyolultabb (pl dátum típusú érték), akkor ehhez a típushoz illő animációs osztályt kell alkalmazni. Ha az adott típushoz nincs ilyen osztály, akkor azt a dependecy property értéket a rendszer nem tudja animálni.

A lap eredeti címe: „http://wiki.ektf.hu/wiki/Wpf:page23
Nézetek
nincs sb_18.217.109.151 cikk