Значок приложения отсутствует на панели задач во время запуска программы, если активно другое приложение

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

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

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

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

Есть идеи?


person Dieter Schmitz    schedule 30.04.2010    source источник


Ответы (3)


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

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

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

Грубое решение состоит в том, чтобы сделать это (псевдокод):

application.Hide();
application.Show()

Другое решение (псевдокод):

application.SetRedraw(False);
application.Show();
application.SetRedraw(True);

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

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

person Aldus-Monitor    schedule 15.05.2014

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

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

person Dan W    schedule 03.04.2016

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

person David Brunelle    schedule 30.04.2010