Окно приложения WPF появляется поверх заставки

StackOverflow https://stackoverflow.com/questions/1632220

  •  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;

В противном случае вы можете посмотреть здесь:

Пример заставки

Это тоже может помочь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top