2

App.xaml.cs 内で、以下のように OnStartup メソッドをオーバーライドしています。ただし、スプラッシュ スクリーンの終了を追加すると、メイン ウィンドウが表示されなくなります。デバッガーは main.Show() 行に到達しますが、これの実行が終了すると、アプリケーションが閉じます。何か案は?


protected override void OnStartup(StartupEventArgs e)
{
   base.OnStartup(e);

   SplashWindow splash = new SplashWindow();
   splash.Show();

   System.Threading.Thread.Sleep(5000);
   splash.Close();

   MainWindow main = new MainWindow();
   main.Show();
}
4

3 に答える 3

5

のデフォルト値ShutdownModeOnLastWindowCloseであるため、スプラッシュ画面を閉じるとプログラムが終了します。これを変更するには、base.OnStartup の呼び出しの後に次のコードを追加します。

this.ShutdownMode = ShutdownMode.OnMainWindowClose;

それでもうまくいかない場合は、 に設定するとうまくいくOnExplicitShutdown可能性があります。

于 2012-05-09T15:52:17.100 に答える
0

別の解決策は、最初にメインウィンドウをロードしますが、その可視性プロパティを非表示に設定することです。次に、そこからスプラッシュスクリーンを起動し、スプラッシュスクリーンが閉じたら、可視性を可視に戻します。

于 2012-05-09T16:01:14.053 に答える
0

Showメソッドは、閉じるのWindowを待たずに を開きます。

アプリが閉じるまで実行を停止するには、アプリのShowDialogメソッドを使用する必要があります。

于 2012-05-09T15:52:57.910 に答える