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

你有没有尝试过

_splashWindow.Owner = _window;

调用后_window.Show()

于 2012-05-15T15:07:05.853 回答
1

没有TopMost可以设置的属性吗?

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

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

于 2012-05-15T15:16:01.293 回答