WPF中的动画逐个显示图像

时间:2013-06-06 19:52:45

标签: wpf animation

我想创造这样的东西 animateit.net/categories.php?cat_id=218&page=11 - 青蛙获取蜘蛛动画GIF ......

我有一个青蛙图像,一个舌头图像和一个错误图像分开,但无法使用WPF将其置于动画中。

关于如何做的任何想法?

1 个答案:

答案 0 :(得分:0)

如果你想在代码隐藏中为图像设置动画,你可以设置如下:

MyImage是您显示“gif”的地方。 FrogImage是青蛙的形象。 舌头图像是舌头出来的形象。 BugImage是带有bug的青蛙的形象。

首先,初始化这样的计时器,可能在'MainWindow()'或全局级别:

DispatcherTimer tmrBlinkImage = new DispatcherTimer()
            { IsEnabled = false, Interval = TimeSpan.FromMilliseconds(500) };
tmrBlinkImage.Tick += new EventHandler(tmrBlinkImage_Tick);
public int _ImageBlinkIndex = 0;

然后,设置如下的事件处理程序:

private void tmrBlinkImage_Tick(object sender, EventArgs e)
{
    try
    {
        if (null == MyImage)
            return;

        if (MyImage.IsDisposed)
            return;

        switch (_ImageBlinkIndex)
        {
            case 0:
                if (MyImage.Source != FrogImage)
                    MyImage.Source = FrogImage;

                _ImageBlinkIndex++;
                break;
            case 1:
                if (MyImage.Source != TongueImage)
                    MyImage.Source = TongueImage;

                _ImageBlinkIndex++;

                break;
            case 2:
                if (MyImage.Source != BugImage)
                    MyImage.Source = BugImage;

                _ImageBlinkIndex = 0;
                break;
            default:
                _ImageBlinkIndex = 0;
                break;
        }
    }
    catch (Exception ex)
    {
        tmrBlinkImage.Stop();
        //woops....
    }
}

这将循环显示图像并每半秒更新一次帧。根据您的需要调整值。