ImageAnimator.Animate(Image, EventHandler) Methode

Definition

Zeigt ein Bild, das mehrere Frames enthält, als Animation an.Displays a multiple-frame image as an animation.

public:
 static void Animate(System::Drawing::Image ^ image, EventHandler ^ onFrameChangedHandler);
public static void Animate (System.Drawing.Image image, EventHandler onFrameChangedHandler);
static member Animate : System.Drawing.Image * EventHandler -> unit

Parameter

image
Image

Das zu animierende Image-Objekt.The Image object to animate.

onFrameChangedHandler
EventHandler

Ein EventHandler-Objekt, das die beim Ändern des Animationsframes aufgerufene Methode angibt.An EventHandler object that specifies the method that is called when the animation frame changes.

Beispiele

Diese Windows Forms Anwendung veranschaulicht das Zeichnen eines animierten Bilds auf dem Bildschirm.This Windows Forms application demonstrates how to draw an animated image to the screen. Das Image wird aus der animierten GIF-Datei SampleAnimation. gif erstellt, die sich im selben Ordner wie die Anwendung befindet.The image is created from the animated GIF file SampleAnimation.gif located in the same folder as the application.

#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;

public ref class AnimateImageForm : public Form 
{

    // Create a Bitmap Object.
private:
    Bitmap^ animatedImage;
private:
    bool currentlyAnimating;

public:
    AnimateImageForm()
    {
        try
        {
            animatedImage = gcnew Bitmap("SampleAnimation.gif");
        }
        catch (ArgumentException^)
        {
            MessageBox::Show("Could not read the image file " +
                "\"SampleAnimation.gif\",\n" +
                "or it is not a valid image file.");
        }
    }

    // This method begins the animation.
public:
    void AnimateImage() 
    {
        // Begin the animation only once.
        // Make sure to animate only if animatedImage was
        // successfully initialised.
        if (!currentlyAnimating && animatedImage != nullptr)
        {
            ImageAnimator::Animate(animatedImage,
                gcnew EventHandler(this, &AnimateImageForm::OnFrameChanged));
            currentlyAnimating = true;
        }
    }

private:
    void OnFrameChanged(Object^ , EventArgs^ ) 
    {
        // Force a call to the Paint event handler.
        this->Invalidate();
    }

protected:
    virtual void OnPaint(PaintEventArgs^ e) override
    {
        // Begin the animation.
        AnimateImage();

        // Get the next frame ready for rendering.
        ImageAnimator::UpdateFrames();

        if (animatedImage != nullptr)
        {
            // Draw the next frame in the animation.
            e->Graphics->DrawImage(this->animatedImage,
                Point(0, 0));
        }
    }
};

[STAThread]
int main()
{
    Application::Run(gcnew AnimateImageForm());
}
using System;
using System.Drawing;
using System.Windows.Forms;

public class animateImage : Form 
{
                     
    //Create a Bitmpap Object.
    Bitmap animatedImage = new Bitmap("SampleAnimation.gif");
    bool currentlyAnimating = false;
                     
    //This method begins the animation.
    public void AnimateImage() 
    {
        if (!currentlyAnimating) 
        {
                     
            //Begin the animation only once.
            ImageAnimator.Animate(animatedImage, new EventHandler(this.OnFrameChanged));
            currentlyAnimating = true;
        }
    }

    private void OnFrameChanged(object o, EventArgs e) 
    {
                     
        //Force a call to the Paint event handler.
        this.Invalidate();
    }

    protected override void OnPaint(PaintEventArgs e) 
    {
                     
        //Begin the animation.
        AnimateImage();
                     
        //Get the next frame ready for rendering.
        ImageAnimator.UpdateFrames();
                     
        //Draw the next frame in the animation.
        e.Graphics.DrawImage(this.animatedImage, new Point(0, 0));
    }

    public static void Main() 
    {
        Application.Run(new animateImage());
    }
}
Imports System.Drawing
Imports System.Windows.Forms

Public Class animateImage
    Inherits Form

    'Create a Bitmpap Object.
    Private animatedImage As New Bitmap("SampleAnimation.gif")
    Private currentlyAnimating As Boolean = False

    'This method begins the animation.
    Public Sub AnimateImage()
        If Not currentlyAnimating Then

            'Begin the animation only once.
            ImageAnimator.Animate(animatedImage, _
            New EventHandler(AddressOf Me.OnFrameChanged))
            currentlyAnimating = True
        End If
    End Sub

    Private Sub OnFrameChanged(ByVal o As Object, ByVal e As EventArgs)

        'Force a call to the Paint event handler.
        Me.Invalidate()
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)

        'Begin the animation.
        AnimateImage()

        'Get the next frame ready for rendering.
        ImageAnimator.UpdateFrames()

        'Draw the next frame in the animation.
        e.Graphics.DrawImage(Me.animatedImage, New Point(0, 0))
    End Sub

    Public Shared Sub Main()
        Application.Run(New AnimateImage)
    End Sub
End Class

Gilt für: