C# как остановить анимированный gif от непрерывного цикла
У меня есть событие, которое вызывается, когда приложение использует интернет. Событие изменяет анимированный gif, состоящий из 7 кадров. Как сделать так, чтобы он проходил через рамки только один раз?
private void trafficSendingActive(object sender, trafficEventArgs e)
{
txImage.Image = Properties.Resources.blip;
}
4 ответов
можно использовать System.Drawing.ImageAnimator
для запуска / остановки gif анимации
// start
System.Drawing.ImageAnimator.Animate(txImage.Image, OnFrameChanged);
// stop
System.Drawing.ImageAnimator.StopAnimate(txImage.Image, OnFrameChanged);
private void OnFrameChanged(object sender, EventArgs e)
{
// frame change
}
вы всегда можете инкапсулировать изображение / gif внутри Picturebox, и когда вы хотите, чтобы gif остановился, просто установите свойство Enabled Picturebox в false.
просто мысли.
вы можете извлечь один кадр из этого GIF
изображение (без анимации), когда событие прогресса сделано,
txImage.Image = Image.FormFile("non-animated-frame-from-gif.jpg");
вы можете использовать этот веб-сайт для извлечения кадра из gif:http://gif-explode.com/
Вы можете просто использовать pictureBox.Enabled = false;
Если вы хотите остановить GIF&pictureBox.Enabled = true;
когда вы хотите, чтобы запустить GIF.