想知道如何才能暫停GIF圖像? 我正在訪問一個服務器,我想要一個GIF圖像播放時發生的事情,如果系統已凍結,我希望它暫停。 我有一個附有圖像的圖片框。 這可能嗎?在表單中暫停GIF
0
A
回答
4
PictureBox使用ImageAnimator類來動畫GIF圖像。其中有Stop()方法來停止動畫。不幸的是,它不公開你需要修改它的成員,你必須自己使用ImageAnimator。
如果您不反對使用Reflection來解決這些限制,那麼您可以使用後門。這通常是一個非常糟糕的主意,但Winforms處於維護模式,PictureBox將要再次改變的機率非常接近於零。它看起來像這樣:
using System.Reflection;
...
private static bool IsAnimating(PictureBox box) {
var fi = box.GetType().GetField("currentlyAnimating",
BindingFlags.NonPublic | BindingFlags.Instance);
return (bool)fi.GetValue(box);
}
private static void Animate(PictureBox box, bool enable) {
var anim = box.GetType().GetMethod("Animate",
BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(bool) }, null);
anim.Invoke(box, new object[] { enable });
}
該樣本按鈕的Click事件可靠地停止和啓動動畫:
private void button1_Click(object sender, EventArgs e) {
Animate(pictureBox1, !IsAnimating(pictureBox1));
}
如果你不喜歡這些類型的黑客然後用ImageAnimator自己。
0
轉換所需的幀爲位圖
Image gifImg = ActivscreenLibraries.Resources.throbber_running;
FrameDimension dimension = new FrameDimension(gifImg.FrameDimensionsList[0]);
// Number of frames
int frameCount = gifImg.GetFrameCount(dimension);
// Return an Image at a certain index
gifImg.SelectActiveFrame(dimension, 5);
Bitmap aa = new Bitmap(gifImg);
pictureBox1.Image = Image.FromHbitmap(aa.GetHbitmap());
0
正如你可以閱讀評論的question米莎已經鏈接,你可以簡單的設置
myPictureBox.Enabled = false;
停止圖像動畫。將其設置爲true
以再次啓動它。這是不需要反思。
Windows.Forms.PictureBox.OnEnabledChanged
本質上調用Animate(Enabled)
。請參閱source code。
相關問題
- 1. 安卓:顯示和暫停GIF圖像
- 2. Gif動畫XAML C#已暫停
- 3. 用鼠標事件播放/暫停gif
- 4. Libgdx:暫停菜單和暫停狀態
- 5. 在winform中播放和暫停.GIF動畫
- 6. 防止WinForms PictureBox動畫GIF在處理過程中暫停?
- 7. 使用內部具有GIF的CSS移動div。 GIF在移動時暫停
- 8. 按播放/暫停按鈕停止並啓動gif
- 9. 加載GIF在Safari中提交表單時停止動畫
- 10. 在Skrollr中暫停
- 11. 如何在不暫停的情況下移動動畫GIF?
- 12. 暫停表單提交驗證
- 13. WinForm ReturnFocus /暫停表單事件?
- 14. jQuery:暫停表單默認操作
- 15. jQuery表單提交前暫停
- 16. 使用javascript提交的暫停表單
- 17. 如何在Windows Phone中暫停秒錶?
- 18. 在ASP.NET圖表系列中暫停
- 19. 在AngularJS中暫停$ watch手錶
- 20. 暫時暫停System.Timers.Timer在C#
- 21. 暫停循環並暫停
- 22. 如何在Visual C#中暫停表單,直到關閉另一個表單
- 23. Backgroundworker暫停在
- 24. 暫停在JavaScript
- 25. 如何在主線程停止/暫停線程/ Activity在android中暫停/停止?
- 26. 簡單的滑塊1.7(暫停懸停)
- 27. 在Xamarin.Forms中啓動,暫停和停止的簡單定時器
- 28. 暫停菜單,健康酒吧不暫停
- 29. 如何使用ReactJS代碼播放和暫停React-GIF圖像
- 30. 如何使用jQuery暫停和啓動gif AJAX
請標記爲winforms,WPF或ASP.NET – SynerCoder
也許這有助於:http://stackoverflow.com/questions/15647901/c-sharp-how-to-stop-animated-gif-from-continually-looping – Micha
既然你知道(因爲它看起來)狀態正在改變(從進行中的空閒,反之亦然),平臺的一個可能的解決方案將是有一個動畫GIF和一個正常,只是在適當的時候改變它們。 – pasty