我有一个由 NotifyIcon 支持的托盘应用程序。它有时会通过 notifyIcon.ShowBallonTip() 触发 toast 通知。它在 Windows 10 1607 上运行。
我订阅了以下两个活动:
notifyIcon.MouseUp += notifyIcon_MouseUp;
notifyIcon.BalloonTipClicked += notifyIcon_BalloonTipClicked;
乍一看,一切都很好:
- 当我单击托盘图标时,我得到了 MouseUp 事件并且发生了正确的事情
- 当我点击 toast 时,我得到 BalloonTipClicked 事件并且正确的事情发生了
现在应用程序中的错误是,如果用户在显示 toast 时单击托盘图标,则其行为就好像用户单击了 toast。换句话说,在显示气球/吐司时单击托盘图标将触发 BallonTipClicked,即使气球/吐司实际上从未被点击过。
当我在 BalloonTipClicked 中时,“发件人”只是 NotifyIcon。我没有看到任何区分“点击气球提示”和“点击托盘图标”的方法。我的意思是,事件本身被称为 BallonTipClicked,所以我不知道为什么当我单击应用程序图标时它会触发。
根据 MSDN,这不应该发生:
BalloonTipClicked:在单击气球提示时发生。
MouseUp:当用户在指针位于任务栏通知区域中的图标上方时释放鼠标按钮时发生。
文档错了吗?获得我想要的行为的任何想法?