A megvalósításhoz az ImageAnimator osztály felhasználására lesz szükségünk. Ismerkedjünk meg először ennek lehetőségeivel:

Animate
Osztály: System.Drawing.ImageAnimator
public static void Animate(
Image image,
EventHandler onFrameChangedHandler
);
Az animáció indításához az Animate függvényt kell meghívunk.
Paraméterek
Image image
Az image paraméterben kell megadni a lejátszani kívánt animációt.
EventHandler onFrameChangedHandler
Meg kell adnunk egy eseménykezelő függvényt, mely akkor hívódik meg, amikor az animációban a következő képet kell megjeleníteni.

CanAnimate
Osztály: System.Drawing.ImageAnimator
public static bool CanAnimate(
Image image
);
A CanAnimate függvénnyel ellenőrizhetjük, hogy a megadott Image osztály tartalmaz-e idő alapú képsorokat.
Paraméterek
Image image
Az ellenőrizendő képet kell megadnunk.
Visszatérési érték
Igaz, ha az Image osztályban lévő kép animálható.

StopAnimate
Osztály: System.Drawing.ImageAnimator
public static void StopAnimate(
Image image,
EventHandler onFrameChangedHandler
);
A StopAnimate leállítja a már elindított animációt.
Paraméterek
Image image
A leállítani kívánt animációt tartalmazó Image osztály.
EventHandler onFrameChangedHandler
Meg kell adnunk egy eseménykezelő függvényt, mely akkor hívódik meg, amikor az animációban a következő képet kell megjeleníteni.

UpdateFrames
Osztály: System.Drawing.ImageAnimator
public static void UpdateFrames();
Következő képkockára lépteti az animációt, így az Image kirajzolásakor már a soron következő kép jelenik meg.

UpdateFrames
Osztály: System.Drawing.ImageAnimator
public static void UpdateFrames(
Image image
);
Következő képkockára lépteti az animációt, így az Image kirajzolásakor már a soron következő kép jelenik meg.
Paraméterek
Image image
Az image paraméterben megadott kép kerül léptetésre.
A példaprogram
Az animációhoz szükségünk lesz egy animált GIF-re, melyet a program indulásakor betöltünk egy Bitmap osztályba.
Private gif As Bitmap
gif = New Bitmap("1.gif")
Az animáció elindítását az Animate függvényre bízzuk.
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
ImageAnimator.Animate(gif, New EventHandler(AddressOf OnNextFrame))
End Sub
Az Animate függvénynek megadtuk az OnNextFrame nevű függvényünket, mely akkor kerül meghívásra, ha letelik az az idő, ami után a következő képkockát meg kell jelenítenünk. Ehhez érvénytelenítjük a Form területét, ami azt vonja maga után, hogy meghívásra kerül a Form Paint eseménye.
Private Sub OnNextFrame(ByVal o As Object, ByVal e As EventArgs)
Invalidate()
End Sub
Létrehozunk a Form Paint eseményéhez egy eseménykezelőt, melyben elvégezzük a következő képkocka kirajzolását a Form-ra. Itt az UpdateFrames függvénnyel előkészítjük a következő képkockát a kirajzoláshoz, és a DrawImage függvénnyel meg is jelenítjük azt.
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Try
ImageAnimator.UpdateFrames()
e.Graphics.DrawImage(gif, New Point(Me.ClientSize.Width - 130, 10))
Catch
End Try
End Sub