Продвижение NotifyIcon из области переполнения без отображения всплывающей подсказки

Я работаю над приложением WPF/.NET 4, которое находится в системном трее и периодически показывает пользователю сообщения.

Я хотел бы, чтобы мой NotifyIcon перемещался из области переполнения панели задач в видимую часть каждый раз, когда появляется сообщение. Это прекрасно работает, если я вызываю «ShowBalloonTip» на моем NotifyIcon; однако я не хочу использовать стандартные всплывающие подсказки ОС (для этого у меня есть собственный элемент управления, который поддерживает несколько экземпляров и пользовательские анимации).

Является ли это возможным? Кажется, это не позволяет отображать пустой/невидимый воздушный шар, а удаление/повторное добавление значка не дает ожидаемого эффекта. Интересно, должен ли я создавать дополнительный значок в трее каждый раз, когда у меня есть сообщение (например, значок «новая почта» в Outlook), и удалять его, когда мое сообщение исчезает.


person siger    schedule 10.08.2013    source источник


Ответы (1)


Это невозможно. Серьезная проблема с областью уведомлений заключается в том, что каждый программист считает, что его приложение достаточно важно, чтобы быть рядом с часами. Скромность — не черта программиста, и это хорошо.

Однако пользователь устанавливает другие приоритеты. Он может запускать больше, чем три приложения, которые, по мнению всех, должны занимать высокое место. Это вышло действительно из-под контроля, я видел скриншоты машин с Win98, где 75% панели задач было занято важными программами.

Это было неустойчиво, и Microsoft что-то предприняла. Они добавили область переполнения, чтобы предоставить место для значков уведомлений, которые пользователь не считает важными. Поскольку я сам пользователь компьютера, он очень быстро заполняется любыми значками shovelware, которые поставляются с новой машиной, которую я покупаю. Оттуда скорость, которую я удаляю, обратно пропорциональна количеству раз, когда он выдает мне совершенно бесполезную или непостижимую информацию. Выживают только те, у кого никогда не было воздушного шара.

Ключевой особенностью области переполнения является то, что программы не могут сделать что-либо, чтобы вернуться обратно к часам. Это полностью лишило бы смысла иметь его. Помимо показа воздушного шара, пользователь должен знать, откуда он взялся. Это должно быть что-то значимое и актуальное для пользователя. Если это не так, то ваш деинсталлятор — это часть вашего продукта, которая больше всего тестируется.

Вы сами являетесь компьютером и тоже боролись с надоедливыми значками уведомлений. Примените точно такую ​​же логику к своей собственной. И не забудьте спросить кого-нибудь еще, что они думают о вашем. И если ваши уведомления достаточно полезны, это просто позаботится о себе. Ваш пользователь переместит его обратно. Потому что это то, что он может сделать.

person Hans Passant    schedule 10.08.2013
comment
Спасибо. Это то, что я себе представлял, и я согласен с вашим утверждением. - person siger; 11.08.2013