2012-05-15 2 views
0

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; 

답변

1

당신이 _window.Show() 호출 후

_splashWindow.Owner = _window; 

를 시도?

+0

이렇게하면 기본 창이 여전히 스플래시 창 위에 그려집니다. 그러나, 단 하나의 작업 표시 줄 항목이 있습니다 (이는 또한 제가 원한 것입니다). 메인 윈도우가 표시된 후에 작업 표시 줄 항목을 클릭하면 스플래시 화면이 맨 위로 돌아옵니다. 그러나 나는 그것이 표시되는 동안 항상 위에 남아 있기를 바란다. – bsh152s

+0

Nevermind, @Yatrix의 TopMost 팁과 함께 작동했습니다. – bsh152s