La ventana de la aplicación WPF aparece en la parte superior de SplashScreen

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

  •  06-07-2019
  •  | 
  •  

Pregunta

Seguí los sencillos pasos descritos en Cómo: Agregar una pantalla de bienvenida a una aplicación WPF para agregar una pantalla de bienvenida a mi aplicación WPF. Cuando inicio la aplicación, se muestra la imagen de bienvenida, luego aparece la ventana principal y la imagen de bienvenida se desvanece.

Mi problema es que cuando aparece la ventana principal, aparece encima de la imagen de bienvenida. Luego, cuando la imagen de bienvenida comienza a desvanecerse, la imagen de bienvenida vuelve a aparecer en la parte superior. El resultado final es que la imagen de bienvenida desaparece durante una fracción de segundo a medida que aparece la ventana principal.

¿Cómo puedo forzar que la ventana principal aparezca debajo de la imagen de bienvenida, para que la imagen de bienvenida no desaparezca?

¿Fue útil?

Solución

¿Este no es el comportamiento predeterminado? ¿Debe tener algún código que enfoque manualmente la ventana principal?

Puede ser más fácil apagar el desvanecimiento manualmente con un código como este:

_splash = nueva SplashScreen (" LoadingScreen.png ");

_splash.Show(false);

_splash.Close(TimeSpan.Zero);

Otros consejos

En .NET 4.0 se ha agregado una sobrecarga al Show Método que permite establecer el estilo de ventana WS_EX_TOPMOST en la ventana de la pantalla de bienvenida. Muestre la pantalla de bienvenida en un código como este:

SplashScreen splash = new SplashScreen("SplashScreen.png");
splash.Show(autoClose: true, topMost: true);

Llamo a eso desde el método

protected override void OnStartup(StartupEventArgs e)

en App.xaml.cs.

" SplashScreen.png " es, por supuesto, el identificador de su imagen de bienvenida incrustada en los recursos de la aplicación.

No estoy seguro de si esto ayudará, pero si configura el propietario de la pantalla de bienvenida en el formulario actual, ¿quizás esto debería ser el truco?

_splash.Owner = this;

De lo contrario, puede mirar aquí:

Ejemplo de pantalla de bienvenida

Esto también podría ayudar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top