我想制作一个带图像动画的按钮,在鼠标悬停事件的最后一帧播放一次,并且应该在鼠标离开时设置原始图像(第一个“动画帧”)。 bmp中的所有图像,并分开。
我只有一些代码,就像那样:
Bitmap bmp = (Bitmap)Bitmap.FromFile("button_01.bmp");
bmp.MakeTransparent(Color.Black);
但一般还在考虑如何。有什么例子吗?
答案 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();
}