如何使用C#在Mouse Hover上创建image [] - 动画按钮?

时间:2017-05-22 23:21:04

标签: c# winforms

我想制作一个带图像动画的按钮,在鼠标悬停事件的最后一帧播放一次,并且应该在鼠标离开时设置原始图像(第一个“动画帧”)。 bmp中的所有图像,并分开。

我只有一些代码,就像那样:

Bitmap bmp = (Bitmap)Bitmap.FromFile("button_01.bmp");
bmp.MakeTransparent(Color.Black);

但一般还在考虑如何。有什么例子吗?

早期 enter image description here

中东 enter image description here

最终 enter image description here

1 个答案:

答案 0 :(得分:1)

定义表单字段:

CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();

处理两个事件:

private async void Button_MouseEnter(object sender, EventArgs e)
{
    try
    {
        await Task.Delay(1000, cancellationTokenSource.Token);
        button.BackgroundImage = bmp2;
        await Task.Delay(1000, cancellationTokenSource.Token);
        button.BackgroundImage = bmp3;
    }
    catch (TaskCanceledException) { }
}

private void Button_MouseLeave(object sender, EventArgs e)
{
    cancellationTokenSource.Cancel();
    button.BackgroundImage = bmp1;
    cancellationTokenSource = new CancellationTokenSource();
}