Wpf скрыть окно из панели задач

C# WPF: При скрытии иконки приложения на панели задач окно исчезает на пару миллисекунд

Если у окна вызвать свойство ShowInTaskbar = false , то окно на долю секунды исчезнет и появится снова, как будто у него вызвали методы Hide(); Show() . Иконка на панели задач при этом пропадает.

Как можно избавиться от этой проблемы? Или это особенность, которую никак не обойти?

1 ответ 1

Это особенность поведения операционной системы, да и на самом деле это не проблема.

Дело в том, что по UX логике непонятно, зачем убирать из таскбара открытое окно, это может оказаться неожиданным для пользователя. Данный сценарий просто не предусмотрен в Windows.

Я рекомендую отказаться от убирания открытого окна. Из таскбара прятать надо именно свернутое окно. Я вообще не знаю ни одного приложения, которое вот так вот скрывается в открытом состоянии из таскбара при изменении настроек.

Есть настройка типа «сворачивать в трей», и если галочка стоит — приложение пропадает из таскбара, когда я его сворачиваю. А когда окно экране — оно всегда там есть, иначе непонятно, как с приложением взаимодействовать при переключении между окнами. В окно, скрытое из таскбара невозможно переключиться например через Alt+Tab .

Закостылить это возможно, но придется делать 2 окна, одно невидимое, но видимое в таскбаре, второе на экране, но всегда невидимое в таскбаре. То есть одно из окон будет отвечать только за таскбар. Сделать это весьма не просто, так как окно для таскбара должно будет выглядеть точно так же как основное окно, потому что операционная система снимает скриншоты с окна, чтобы показывать красивые картинки при переключении между окнами, затем придется пробрасывать междлу окнами все события сворачивания, разворачивания изменения размера и прочие прелести. Не вижу смысла и не советую этим заниматься.

Читайте также:  Панелей для внутренней отделки жилых помещений

Источник

Оцените статью
Авто Город