タイムベース (time based) のフレームが含まれる画像を、動画化できます。
すべて静的メソッドです。
| メソッド | 機能 | 
|---|---|
| Animate(Image, EventHandler) | アニメーションを開始できる | 
| StopAnimate(Image, EventHandler) | アニメーションを終了できる | 
| UpdateFrames() | 実行中のすべてのイメージの、フレームを進められる | 
| UpdateFrames(Image) | 指定のイメージの、フレームを進められる | 
| CanAnimate(Image) | 指定のイメージにタイムベース フレームが含まれているか調べられる | 
class MyForm : Form
{
    Bitmap image = new Bitmap("sample.gif");
    Rectangle rc;
    protected override async void OnShown(EventArgs e)
    {
        base.OnShown(e);
        this.rc = new Rectangle(new Point(0, 0), this.image.Size);
        EventHandler onFrameChangedHandler = delegate // フレームが変更された
        {
            this.Invalidate(this.rc);
        };
        // アニメーションを開始する
        ImageAnimator.Animate(this.image, onFrameChangedHandler);
        await Task.Delay(3000);
        // アニメーションを終了する
        ImageAnimator.StopAnimate(this.image, onFrameChangedHandler);
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        if (e.ClipRectangle.IntersectsWith(this.rc))
        {
            // 次のフレームへ進める
            ImageAnimator.UpdateFrames(this.image);
            // 新しいフレームを描画する
            e.Graphics.DrawImage(this.image, this.rc);
        }
    }
}
			例 - ImageAnimator.Animate(Image, EventHandler) メソッド (System.Drawing) | Microsoft Learn
		複数のフレームからなる画像を、アニメーションとして表示できます。
public static void Animate (
    System.Drawing.Image image,
    EventHandler onFrameChangedHandler // アニメーションのフレームが変更されたときに呼び出されるメソッド
    );
			ImageAnimator.Animate(Image, EventHandler) メソッド (System.Drawing) | Microsoft Learn
			Animate()でアニメーションを開始すると、StopAnimate()を呼ぶまでくり返しonFrameChangedHandlerが呼ばれます。
imageがすでにアニメーションを開始しているならば、それが終了させられた上で新たに開始されます。Animate - ImageAnimator.cs
アニメーションを終了させられます。
public static void StopAnimate (
    System.Drawing.Image image,
    EventHandler onFrameChangedHandler
    );
			ImageAnimator.StopAnimate(Image, EventHandler) メソッド (System.Drawing) | Microsoft Learn
			onFrameChangedHandlerには、Animate()で開始するときに渡したハンドラを指定します。
imageがアニメーションを開始していないならば、何も終了しません。StopAnimate - ImageAnimator.cs
指定のイメージのフレームを進められます。このメソッドではイメージ内のフレームの情報を変更するだけで、表示が変更されるのは次に描画されたときです。
public static void UpdateFrames (System.Drawing.Image image);UpdateFrames(Image) - ImageAnimator.UpdateFrames メソッド (System.Drawing) | Microsoft Learn
このメソッドをくり返し呼び出した場合、フレームが進められる前だったならば、次のフレームへは進められません。UpdateFrames - ImageAnimator.cs