如何在Windows窗体(c#)上显示动画GIF

我有一个显示进度消息的表格,它显示了相当长的过程。这是对Web服务的调用,因此我无法真正在进度条上有意义地显示完成百分比。(我不太喜欢进度条的Marquee属性)

我想展示一个动画GIF,以使该过程具有某种活动的感觉(例如,文件从一台计算机飞到另一台计算机,例如Windows复制过程)。

你怎么做到这一点?


largeQ
浏览 1775回答 3
3回答

守着一只汪

不太难。将一个图片框拖放到您的窗体上。将.gif文件作为图片添加到图片框中加载时显示图片框。要考虑的事项:禁用图片框将阻止gif动画化。GIF动画:如果您正在寻找GIF动画,可以在此处生成它们另一种方法是:我发现效果很好的另一种方法是在代码项目中找到的异步对话框控件

慕码人2483693

我有同样的问题。整个表单(包括gif)由于在后台长时间运行而停止重绘自身。这是我解决这个问题的方法。  private void MyThreadRoutine()  {   this.Invoke(this.ShowProgressGifDelegate);   //your long running process   System.Threading.Thread.Sleep(5000);   this.Invoke(this.HideProgressGifDelegate);  }  private void button1_Click(object sender, EventArgs e)  {   ThreadStart myThreadStart = new ThreadStart(MyThreadRoutine);   Thread myThread = new Thread(myThreadStart);   myThread.Start();   }我只是创建了另一个线程来负责此操作。由于有了这种初始形式,所以可以继续重绘而不会出现问题(包括我的gif工作正常)。ShowProgressGifDelegate和HideProgressGifDelegate是将gif的pictureBox的可见属性设置为true / false的形式的委托。

元芳怎么了

请注意,在Windows中,传统上您不使用动画Gif,而是使用很少的AVI动画:有一个Windows本机控件仅用于显示它们。甚至还有将动画Gif转换为AVI的工具(反之亦然)。
打开App,查看更多内容
随时随地看视频慕课网APP