.NET NotifyIcon 在 Windows 10 中显示吐司通知两次
.NET NotifyIcon displays a toast notification twice in Windows 10
我使用 .NET Framework System.Windows.Forms.NotifyIcon class 来显示托盘图标和托盘通知。当我在其实例上调用 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,并且我不会两次显示具有相同图标的 toast,因此它们总是切换。但这似乎并不重要。
- 超时参数为 0,因为自 Windows Vista 以来未使用它。
- toast 是应用程序状态更改的结果,而不是单击等用户操作的结果。
所以我决定坚持处理通知图标实例并在每次显示 toast 通知时重新创建它。我觉得不太好,但我找不到更好的解决方案。
我还在应用程序关闭时处理了通知图标,以清除通知中心以前显示的通知。否则,当另一个应用程序显示吐司时,最后一个首先显示。
我使用 .NET Framework System.Windows.Forms.NotifyIcon class 来显示托盘图标和托盘通知。当我在其实例上调用 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,并且我不会两次显示具有相同图标的 toast,因此它们总是切换。但这似乎并不重要。
- 超时参数为 0,因为自 Windows Vista 以来未使用它。
- toast 是应用程序状态更改的结果,而不是单击等用户操作的结果。
所以我决定坚持处理通知图标实例并在每次显示 toast 通知时重新创建它。我觉得不太好,但我找不到更好的解决方案。
我还在应用程序关闭时处理了通知图标,以清除通知中心以前显示的通知。否则,当另一个应用程序显示吐司时,最后一个首先显示。