ユーザーの選択に基づいて、いくつかのグラフをレンダリングするWinFormアプリがあります。ユーザーが選択すると、中央にアニメーションがあるフォームにオーバーレイが表示されるように、ajaxスタイルのローダーをシミュレートしたいと思います。これを達成するためのオプションのいくつかは何ですか?アニメーション(gif)を中央に配置したパネルをロードし、不透明度を追加することを考えていました。
編集〜誰か?
編集〜これが私が見つけた解決策です...ついに!WPFの意味はありません。
WinForms は、この種のことにはかなり弱いです。WPF は、このような状況をより適切に処理します。あなたはいくつかのことをすることができます:
1) ハック!待機コントロールを含む新しいモードレス、ボーダレス フォームを作成し、それを既存のフォームの上に置きます。私の知る限り、すぐに使用できる WinForms コントロールのいずれにも透明度を割り当てることはできません。既存のフォームが移動すると、新しいフォームが移動することを確認してください。これは完全なハックです。
2) 独自の WinForms コントロールをゼロから作成し、既存のフォームにペイントします。費用対報酬の比率が高い。
3) このフォームに WPF を使用すると、柔軟性が大幅に向上します。それはまったく新しいフレームワークです... 1 つのフォームだけですか?
4) グラフを一時的に非表示にして、進行状況パネルを非常にきれいにします。
WinForms の PictureBox コントロールは、アニメーション GIF を処理できません。
PictureBox は引き続き使用できますが、自分でフレームをめくることができます。タイマーを 50 ミリ秒または 100 ミリ秒ごとに設定するだけで、ピクチャ ボックスのフレームを回転させ続けることができます。
オーバーレイを作成するには、フォーム全体をアルファ値で覆う黒いパネルを試します。ただし、Windows XP よりも低いバージョンでは動作しません。私の記憶が正しければ、Windows 2000 以前では Winforms の透過性を処理できません。