最小化および復元時に画像アニメーションが停止する
-
09-09-2019 - |
質問
アニメーション GIF を含む .NET WinForms アプリケーションがあります。 PictureBox
. 。これはロード中に表示されるアニメーションです。 BackgroundWorker
別のスレッドで何らかの処理を行います。を設定して画像をロードします Image
プロパティを設定すると、それ自体がアニメーション化されます。
アプリケーションを最小化して復元するまでは問題ありません。その時点で、画像はアニメーションを停止し、最後にあったフレームを表示するだけになります。
ご了承ください:
- バックグラウンド スレッドは引き続き正常に実行され、アプリケーションの「ビジネス」には影響がありません。
- その後に表示されるアニメーション GIF は正常に動作します (アプリケーションが再度最小化されない限り)。
この問題の原因を知っている人はいますか?何か回避策はありますか?
解決
ウィンドウが隠されるたびに
どうやらのPictureBoxは、明示的にアニメーションを停止します。ピクチャが無効とウィンドウはもはや隠されたときに再描画ませんが、無効化イベントはVista上で自動的には行われませんする必要があります。
回避策の一つは、PictureBox.Invalidateを(呼び出すフォーム)500msごとにタイマーを追加することです。これは、アニメーションが停止したことがないことを保証します。
このMSDNを参照してください。詳細についてはのスレッドます。
他のヒント
私はそれを原因かわからないけど、それが最小化し、それが復元されますたびにそれを再表示していますときに検出したらどう?
所属していません StackOverflow