App.xaml.c에서 다음과 같은 논리가 있습니다. 먼저 초기화가 수행되는 동안 스플래시 화면이 표시됩니다. 특정 시점에서 필자는 주 응용 프로그램 창을 표시하기에 충분하도록 초기화했습니다. 그러나 필요한 모든 데이터가 캐싱 될 때까지 스플래시 화면이 계속 표시되기를 바랍니다. 내가 가지고있는 문제는 메인 윈도우를 보여줄 때 항상 스플래시 화면의 맨 위에 표시된다는 것입니다. 표시하기 전에 주 창에서 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;
이렇게하면 기본 창이 여전히 스플래시 창 위에 그려집니다. 그러나, 단 하나의 작업 표시 줄 항목이 있습니다 (이는 또한 제가 원한 것입니다). 메인 윈도우가 표시된 후에 작업 표시 줄 항목을 클릭하면 스플래시 화면이 맨 위로 돌아옵니다. 그러나 나는 그것이 표시되는 동안 항상 위에 남아 있기를 바란다. – bsh152s
Nevermind, @Yatrix의 TopMost 팁과 함께 작동했습니다. – bsh152s