5

「方法: スプラッシュ スクリーンを WPF アプリケーションに追加する」で説明されている簡単な手順に従って、スプラッシュ スクリーンを WPF アプリケーションに追加しました。アプリケーションを起動すると、スプラッシュ イメージが表示され、メイン ウィンドウがポップアップし、スプラッシュ イメージが消えます。

私の問題は、メイン ウィンドウがポップアップすると、スプラッシュ イメージの上に表示されることです。その後、スプラッシュ画像がフェードアウトし始めると、スプラッシュ画像が再び一番上にポップアップします。最終的に、メイン ウィンドウが表示されると、スプラッシュ イメージが一瞬消えます。

スプラッシュ画像が消えないように、スプラッシュ画像の下にメインウィンドウを強制的に表示するにはどうすればよいですか?

4

3 に答える 3

6

.NET 4.0では、Showメソッドにオーバーロードが追加され、スプラッシュ画面ウィンドウでウィンドウスタイルWS_EX_TOPMOSTを設定できるようになりました。次のようなコードでスプラッシュ画面を表示します。

SplashScreen splash = new SplashScreen("SplashScreen.png");
splash.Show(autoClose: true, topMost: true);

私はそれをメソッドから呼び出します

protected override void OnStartup(StartupEventArgs e)

App.xaml.csで。

「SplashScreen.png」はもちろん、アプリケーションのリソースに埋め込まれているスプラッシュ画像の識別子です。

于 2011-08-01T08:55:11.703 に答える
1

これはデフォルトの動作ではありません。メイン ウィンドウを手動でフォーカスするコードが必要ですか?

次のようなコードを使用して、フェードを手動でオフにする方が簡単な場合があります。

_splash = new SplashScreen("LoadingScreen.png");

_splash.Show(false);

_splash.Close(TimeSpan.Zero);

于 2009-10-28T06:26:57.147 に答える
0

これが役立つかどうかはわかりませんが、スプラッシュ画面の所有者を現在のフォームに設定すると、うまくいくはずですか?

_splash.Owner = this;

それ以外の場合は、ここを見ることができます:

スプラッシュ画面の例

これも役立つかもしれません。

于 2010-03-17T09:37:10.923 に答える