0

App.xaml.cs に次のロジックがあります。最初に、いくつかの初期化が行われている間、スプラッシュ スクリーンが表示されます。ある時点で、メイン アプリケーション ウィンドウを表示するのに十分な初期化が完了しました。ただし、必要なデータがすべてキャッシュされるまで、スプラッシュ スクリーンを表示し続けたいと考えています。私が抱えている問題は、メイン ウィンドウを表示すると、常にスプラッシュ スクリーンの上に表示されることです。表示する前にメイン ウィンドウで ShowActivated プロパティを false に設定しようとしましたが、それでもスプラッシュ スクリーンに表示されます。何か案は?

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

  _splashWindow = new SplashWindow();

  _splashWindow.Show();

  ...

  _mainWindow = new MainWindow();
  _mainWindow.DataContext = new MainViewModel();
  _mainWindow.ShowActivated = false;
  _window.Show();
}

private void OnCacheLoadComplete(object sender, EventArgs e)
{
  _splashWindow.Close();
}

解決:

  _mainWindow = new MainWindow();
  _mainWindow.DataContext = new MainViewModel();
  _window.Show();
  _splashWindow.TopMost = true;
  _splashWindow.Owner = _window;
4

2 に答える 2

1

TopMost設定できるプロパティはありませんか?

http://msdn.microsoft.com/en-us/library/ms748948.aspx

中にはいいものがあります。TopMost と所有権を設定する必要があるようです。

于 2012-05-15T15:16:01.293 に答える
1

やってみました

_splashWindow.Owner = _window;

_window.Show()への呼び出しの後

于 2012-05-15T15:07:05.853 に答える