Окно приложения WPF появляется поверх заставки
-
06-07-2019 - |
Вопрос
Я следовал простым шагам, описанным в Как сделать:Добавление заставки в приложение WPF чтобы добавить заставку в мое приложение WPF.Когда я запускаю приложение, отображается заставка, затем появляется главное окно, и заставка исчезает.
Моя проблема в том, что когда появляется главное окно, оно появляется поверх заставки.Затем, когда изображение-заставка начинает исчезать, оно снова появляется вверху.Конечным результатом является то, что заставка исчезает на долю секунды при появлении главного окна.
Как я могу заставить главное окно отображаться под заставкой, чтобы заставка не исчезла?
Решение
Это не поведение по умолчанию, у вас должен быть какой-то код, который вручную фокусирует главное окно?
Возможно, было бы проще просто отключить затухание вручную с помощью такого фрагмента кода, как этот:
_splash = new SplashScreen("LoadingScreen.png");
_splash.Show(false);
_splash.Close(TimeSpan.Zero);
Другие советы
В .NET 4.0 перегрузка был добавлен метод Show, который позволяет задать стиль окна WS_EX_TOPMOST для окна заставки.Покажите заставку в коде, подобном этому:
SplashScreen splash = new SplashScreen("SplashScreen.png");
splash.Show(autoClose: true, topMost: true);
Я вызываю это из метода
protected override void OnStartup(StartupEventArgs e)
в App.xaml.cs.
"SplashScreen.png" - это, конечно, идентификатор вашего изображения-заставки, встроенного в ресурсы приложения.
Не уверен, поможет ли это, но если вы установите владельца Splash-экрана на текущую форму, возможно, это поможет?
_splash.Owner = this;
В противном случае вы можете посмотреть здесь:
Это тоже может помочь. Р>