Значок приложения отсутствует на панели задач во время запуска программы, если другое приложение активно - PullRequest
5 голосов
/ 30 апреля 2010

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

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

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

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

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 15 мая 2014

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

Может быть, фреймворк неправильно запрашивает "мой" элемент панели задач, если он не активен.

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

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

application.Hide();
application.Show()

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

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

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

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

0 голосов
/ 03 апреля 2016

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

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

0 голосов
/ 30 апреля 2010

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

...