Анимация в.gif не отображается в Windows Form
Я очень новичок в C# и Windows.
Я пытаюсь добавить PictureBox в форму окна и отобразить анимированное изображение.gif перед тем, как отобразить данные в форме.
Вот код для PictureBox:
private System.Windows.Forms.PictureBox pictureBox1;
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.SystemColors.AppWorkspace;
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(374, 442);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(16, 16);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.pictureBox1.TabIndex = 19;
this.pictureBox1.TabStop = false;
this.pictureBox1.Visible = false;
Теперь по нажатию кнопки GIF-изображение должно быть загружено в графическое поле. Код для этого выглядит так:
private void scanButton_Click(object sender, EventArgs e)
{
pictureBox1.Visible = true;
pictureBox1.Refresh();
}
Теперь, когда я нажимаю кнопку "Scan Button", изображение становится видимым, но анимация не работает.
Пожалуйста, кто-нибудь может мне помочь, что здесь происходит?
Спасибо!
3 ответа
Чтобы ваша анимация.gif работала, ваш основной поток (UI) должен быть свободным. Если вы выполняете какой-либо процесс в основном потоке, вы не получите эффект анимации.
От вашего вопроса, кажется, что вы выполняете операцию сканирования по нажатию кнопки. Это может быть проблемой.
Чтобы избавиться от этой проблемы, вам нужно убедиться, что ваш основной поток свободен, а любая операция (например, Сканирование) должна выполняться в отдельном потоке.
Просто назначьте путь к изображению в ImageLocation
,
pictureBox1.ImageLocation = "C:\\throbber.gif";
PictureBox
поймет, что это анимированное изображение и воспроизведет его. Отключение PictureBox
или Form
остановит воспроизведение анимации.
Если вам действительно нужно использовать графический блок, вы можете перебирать коллекцию изображений. Но я настоятельно рекомендую использовать WebBrowser (учтите, что это в основном IE)
Это должно помочь вам со всеми анимациями с использованием форм Windows Простая анимация с использованием C#/Windows Forms