주 창을 만들기 전에 스플래시 화면이 표시된 응용 프로그램이 있습니다. 스플래시 화면이 표시되어있는 동안 사용자가 다른 응용 프로그램에 집중했다면 창을 만들 때 초점을 훔치는 기본 창을 피하고 싶습니다.최대화 된 윈도우에서 Window.ShowActivated = false를 어떻게 사용할 수 있습니까?
내 응용 프로그램의 시작은 다음과 같습니다
private void Application_Startup(object sender, StartupEventArgs e)
{
SplashScreenService.Start();
// Initializing stuff...
...
// Ready to open the main window.
MainWindow mainWindow = MainWindow();
mainWindow.ShowActivated = SplashScreenService.HasFocus();
mainWindow.ShowDialog();
}
내가 Window.ShowActivated
false
에 시작 화면이 초점을 잃은 경우에만 설정하고있어, 활성화하기에서 메인 창을 방지하기 위해. 그러나 이로 인해 예외가 발생합니다.
InvalidOperationException : ShowActivated가 false이고 WindowState가 Maximized로 설정된 경우 Window를 표시 할 수 없습니다.
사실, 내 MainWindow는 WindowState
을 Maximized
(이전 세션 설정에서 복원 됨)으로 설정합니다. ShowActivated
기능과 함께 이러한 제한이있는 이유를 이해할 수 없습니다. 이 문제에 대한 문서를 찾을 수 없습니다.
ShowActivated
이 거짓 일 때 WindowState
에서 Normal
까지 강제로 시도했지만 예외를 방지하지만 창을 활성화합니다! 어쩌면 창 상태를 변경하면 실제로 정품 인증을 받습니까?
이 문제를 해결하는 데 사용할 수있는 트릭이 있습니까? 내 메인 윈도우를 최대화 상태로 복원하고, 스플래시 화면에서 사용자가 앱에서 멀리 떨어져있는 경우 메인 윈도우가 다른 응용 프로그램과 멀리 떨어져 있도록하고 싶습니다.
그것은 기본입니다 : 여기에 설명 된대로
더 나은 솔루션 대신 수동으로 극대화 할 수있는 시작 화면에
WindowState
을 설정 Interop를 사용하여 전체 화면을 커버하기 시작 화면을 극대화하고 윈도우 폼하지 않는 것입니다 스플래시 화면이 아닌 최대화 된 창. – ChrisF미안하지만, 내 오해;)이 기술은 여전히 당신을 위해 작동 할 수 있습니다, 그냥 메인 윈도우의 윈도우 상태를 설정하지 않고 수동으로 최대화하십시오. –