3

プログラムで Aero の下のウィンドウの「開く」アニメーションを無効にするにはどうすればよいですか?

新しいフォームを開くと、「ポップイン」します (フェードイン + わずかなスケーリング変換)。このアニメーションを停止して、ウィンドウをすぐに表示したい。

Form の Location プロパティを画面外のどこかに設定し、Show() を呼び出して、正しい位置に移動しようとしました。しかし、それは役に立ちません。アニメーションは続行されます。

多分私が設定できるいくつかの隠しプロパティがありますか?

開く/閉じる/最小化/最大化するアニメーションをグローバルに無効にしたくありません! ウィンドウの「ウィンドウを開く」アニメーションをスキップしたいだけです。

Form.Show() の直後に、ShowWindow(...) を 1 回または複数回呼び出して遊んでみました。しかし、どのパラメーターを渡しても、オープニングアニメーションは中止されません。

4

4 に答える 4

3

私はそれを持っている!ShowWindow、BorderStyles を試した後、正確な解決策を見つけました。

  1. フォームの最初の「FormBorderStyle」プロパティを次のいずれかに変更します。
    • なし
    • FixedToolWindow
    • SizeableToolWindow
  2. フォームの「Shown」イベントにイベントハンドラを追加します。
  3. イベントハンドラ内で、FormBorderStyle を「Sizeable」(またはその他) に変更します。

トリックは、「none」および「*toolwindow」ボーダースタイルがそのフォームの開始/ポップアップアニメーションを抑制することです。それよりも、フォームが表示されるとすぐにボーダースタイルが変更され、元の機能が提供されます (コントロールバーのアイコン、最小化/最大化ボタンなど...)

編集:これも試してみたいと思うかもしれないすべての人のために、私はこれを指摘しなければなりませんできるPInvokeコマンドを実行すると、ウィンドウの実際のサイズが台無しになります。ウィンドウのサイズが正しいことに依存している場合は、これを行った後に、ウィンドウのサイズを意図したサイズに変更してください。

于 2012-11-12T10:28:20.760 に答える
0

これは Windows の視覚効果の一部であり、 SystemParametersInfoメソッドを使用して調整できます。

于 2012-11-12T07:17:25.540 に答える