.NET NotifyIcon отображает всплывающее уведомление дважды в Windows 10 - PullRequest
1 голос
/ 14 марта 2019

Я использую класс .NET Framework System.Windows.Forms.NotifyIcon для отображения значка на панели задач и уведомлений на панели задач.Когда я вызываю ShowBalloonTip для его экземпляра, сначала снова отображается ранее отображенное уведомление, затем оно скрывается, и только через некоторое время отображается ожидаемое.Похоже, что исторические уведомления отображаются первыми, если я не удаляю их вручную из центра уведомлений.

Что можно сделать программно, чтобы предотвратить повторное отображение исторических уведомлений?

Вот как я инициализирую значок уведомления:

notifyIcon.Icon = Properties.Resources.tray_icon;
notifyIcon.Visible = true;

notifyIcon.BalloonTipTitle = Language.TrayMessageTitle;

Вот как я показываю тост:

notifyIcon.BalloonTipIcon = icon;
notifyIcon.BalloonTipText = message;
notifyIcon.ShowBalloonTip(0);
  • Значок - либо ToolTipIcon.Error, либо ToolTipIcon.Info, и я не показываю тост содин и тот же значок дважды, поэтому они всегда переключаются.Но, похоже, это не имеет значения.
  • Параметр тайм-аута равен 0, поскольку он не используется со времен Windows Vista.
  • Символ тоста отображается в результате изменения состояния приложения, а не какрезультат действия пользователя, например щелчка.

1 Ответ

0 голосов
/ 15 марта 2019

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

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

...