如何打开窗口,但显示在我的启动画面下方?

时间:2012-05-15 15:04:59

标签: c# wpf window startup

我的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;

2 个答案:

答案 0 :(得分:1)

你试过吗

_splashWindow.Owner = _window;

致电_window.Show()后?

答案 1 :(得分:1)

您可以设置TopMost属性吗?

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

那里有一些好东西。看起来你应该设置TopMost以及所有权。