2010-04-30 9 views
5

He escrito una aplicación WPF que tiene un icono personalizado (no el estándar). También se implementa una Splashscreen.El icono de la aplicación no aparece en la barra de tareas durante el inicio del programa, si hay otra aplicación activa

El icono se muestra correctamente si comienzo la aplicación y espero hasta que se cargue.

Pero, si inicio mi aplicación y cambio a otra aplicación (por ejemplo, Outlook) antes de que se muestre la pantalla de bienvenida, el ícono no se muestra en la barra de tareas de Windows.

El ícono aparece directamente si cambio a través de alt + tab a mi aplicación.

¿Alguna idea?

Respuesta

-1

Veo un problema similar en algunos sistemas operativos, pero no en todos. Cuando cambio de programa, el ícono que tengo en mi barra de tareas cambia a la aplicación predeterminada onw (la "ventana vacía"). Parece ser un problema con WPF en sí mismo, no con tu programa, por ejemplo.

0

Tuve el mismo problema con un programa escrito en otro idioma (PowerBuilder, y no en .Net), que se comporta exactamente igual. Debe ser un problema de Windows si afecta más que solo WPF. Entonces debe haber una forma de solucionar esto.

Quizás el marco solicite "mi" barra de tareas de forma incorrecta si no está activo.

El ícono de la barra de tareas vuelve a aparecer al volver a establecer el foco en la aplicación.

Una solución en bruto es de hacer esto (pseudo código):

application.Hide(); 
application.Show() 

Otra solución (Pseudo código):

pero esto crea un parpadeo desagradable. ¡Una solución que simplemente "reactiva" o "vuelve a dibujar" la barra de herramientas sería mejor!

La causa del problema (en mi caso no WPF) es que el programa muestra una interfaz de usuario antes de que se complete el constructor de la ventana principal. Es decir. una fuerza redibujar/mostrar la ventana antes de que se complete todo el código de inicialización. Esto probablemente hace que Windows piense que la ventana no es una aplicación sino un "diálogo" de la pantalla de inicio y no asigna un elemento de la barra de tareas. Cuando logré eliminar el código que mostró prematuramente la GUI principal, el problema desapareció.

0

Tuve exactamente el mismo problema con una aplicación de Winforms. La solución que encontré puede ayudar a su aplicación WPF también.

Simplemente asegúrese de que el título de la ventana no se modifique, hasta el último momento posible. En Winforms, moví la línea Text = "blahblah" fuera del evento Form_load, y en el evento Form1_Shown, y ahora ese problema oculto del icono de la barra de tareas se ha desvanecido.

Cuestiones relacionadas