質問

アニメーション GIF を含む .NET WinForms アプリケーションがあります。 PictureBox. 。これはロード中に表示されるアニメーションです。 BackgroundWorker 別のスレッドで何らかの処理を行います。を設定して画像をロードします Image プロパティを設定すると、それ自体がアニメーション化されます。

アプリケーションを最小化して復元するまでは問題ありません。その時点で、画像はアニメーションを停止し、最後にあったフレームを表示するだけになります。

ご了承ください:

  • バックグラウンド スレッドは引き続き正常に実行され、アプリケーションの「ビジネス」には影響がありません。
  • その後に表示されるアニメーション GIF は正常に動作します (アプリケーションが再度最小化されない限り)。

この問題の原因を知っている人はいますか?何か回避策はありますか?

役に立ちましたか?

解決

ウィンドウが隠されるたびに

どうやらのPictureBoxは、明示的にアニメーションを停止します。ピクチャが無効とウィンドウはもはや隠されたときに再描画ませんが、無効化イベントはVista上で自動的には行われませんする必要があります。

回避策の一つは、PictureBox.Invalidateを(呼び出すフォーム)500msごとにタイマーを追加することです。これは、アニメーションが停止したことがないことを保証します。

このMSDNを参照してください。詳細についてはのスレッドます。

他のヒント

私はそれを原因かわからないけど、それが最小化し、それが復元されますたびにそれを再表示していますときに検出したらどう?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top