2010-04-30 12 views
5

J'ai écrit une application WPF qui a une icône personnalisée (pas la norme). Un Splashscreen est également implémenté.L'icône d'application est manquante dans la barre des tâches pendant le démarrage du programme, si une autre application est active

L'icône s'affiche correctement si je démarre l'application et attend qu'elle soit chargée. Mais, si je démarre mon application et passe à une autre application (par exemple Outlook) avant que l'écran de démarrage ne s'affiche, l'icône n'apparaît pas dans la barre des tâches Windows.

L'icône apparaît directement si je passe d'alt + tab à mon application.

Des idées?

Répondre

-1

Je vois un problème similaire sur certains systèmes d'exploitation mais pas tous. Lorsque je change de programme, l'icône que j'ai dans ma barre des tâches est remplacée par l'application par défaut onw (la "fenêtre vide"). Cela semble être un problème avec WPF lui-même, pas n'importe quoi avec votre programme par exemple.

0

J'ai eu le même problème avec un programme écrit dans un autre langage (PowerBuilder, et non celui de base .Net) qui se comporte exactement de la même manière. Doit être un problème de Windows s'il affecte plus que WPF. Il doit donc y avoir un moyen de contourner ce problème.

Peut-être que l'infrastructure demandera "mon" élément de barre des tâches dans le mauvais sens s'il n'est pas actif.

L'icône de la barre des tâches réapparaît lors du réglage de la mise au point sur l'application.

Une solution brute est de le faire (code pseudo):

application.Hide(); 
application.Show() 

Une autre solution (code pseudo):

Mais cela crée un méchant clignements. Une solution qui ne fait que «réactiver» ou «redessiner» la barre d'outils serait meilleure!

La cause du problème (dans mon cas non-WPF) est que le programme montre une interface utilisateur avant que le constructeur de la fenêtre principale est terminée. C'est à dire. une force redessiner/afficher de la fenêtre avant que tout le code d'initialisation soit fait. Ceci amène probablement Windows à penser que la fenêtre n'est pas une application mais plutôt une "boîte de dialogue" de l'écran de démarrage et non pas un élément de la barre des tâches. Lorsque j'ai réussi à supprimer le code qui présentait prématurément l'interface graphique principale, le problème est parti.

0

J'ai eu exactement le même problème avec une application Winforms. La solution que j'ai trouvée peut aussi aider votre application WPF.

Assurez-vous simplement que le titre de la fenêtre n'est pas modifié, jusqu'au dernier moment possible. Dans Winforms, j'ai déplacé la ligne Text = "blahblah" hors de l'événement Form_load et dans l'événement Form1_Shown, et maintenant ce problème d'icône de barre des tâches masqué a disparu.