2010-04-30 1 views
5

Я написал приложение WPF с пользовательским (а не стандартным) значком. Также реализован Splashscreen.Значок приложения отсутствует на панели задач во время запуска программы, если другое приложение активно

Значок отображается правильно, если я запускаю приложение и жду, пока он не будет загружен.

Но если я запустил приложение и переключился на другое приложение (например, Outlook) до отображения моего заставки, значок не отображается на панели задач Windows.

Значок появляется непосредственно, если я переключусь через вкладку alt + в мое приложение.

Любые идеи?

ответ

-1

Я вижу похожую проблему на некоторых ОС, но не на всех. Когда я переключаю программу, значок, который у меня на панели задач, изменяется на приложение по умолчанию onw («пустое окно»). Кажется, это проблема с самим WPF, а не с вашей программой.

0

У меня была такая же проблема с программой, написанной на другом языке (PowerBuilder, а не с базой .Net), которая ведет себя точно так же. Должна быть проблема с Windows, если она затрагивает не только WPF. Поэтому должен быть способ обойти это.

Возможно, структура запрашивает «мой» объект панели задач неправильно, если он неактивен.

Значок панели задач появляется при настройке фокуса назад на приложение.

Сырое решения сделать это (псевдокод):

application.Hide(); 
application.Show() 

Другим решения (Псевдо-код):

Но это создает неприятное мерцание. Решение, которое просто «реактивирует» или «перерисовывает» панель инструментов, было бы лучше!

Причина проблемы (в моем случае с не WPF) заключается в том, что программа показывает пользовательский интерфейс перед завершением конструктора главного окна. То есть перерисовать/показать команду окна до того, как будет выполнен все код инициализации. Это, вероятно, заставляет Windows думать, что это окно не является приложением, а скорее «диалогом» заставки и не назначает элемент панели задач. Когда мне удалось удалить код, который преждевременно показал основной графический интерфейс, проблема исчезла.

0

У меня была такая же проблема с приложением Winforms. Решение, которое я нашел, может помочь вашему приложению WPF.

Просто убедитесь, что заголовок окна не изменяется до последнего момента. В Winforms я переместил строку Text = "blahblah" из события Form_load и в событие Form1_Shown, и теперь проблема с скрытой проблемой на панели задач исчезла.

Смежные вопросы