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

72
7

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

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

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

спросил(а) 2013-08-11T00:03:00+04:00 6 лет, 7 месяцев назад
1
Решение
51

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

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

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

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

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

ответил(а) 2013-08-11T01:29:00+04:00 6 лет, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема