从溢出区域提升NotifyIcon而不显示气球提示

时间:2013-08-10 21:03:14

标签: c# winapi windows-shell

我正在使用位于系统托盘中的WPF / .NET 4应用程序,并定期向用户显示消息。

我希望每次有消息时,将NotifyIcon从系统托盘的溢出区域升级到可见部分。如果我在NotifyIcon上调用'ShowBalloonTip',这可以正常工作;但是,我不想使用标准的OS气球(我有一个自定义控件,支持多个实例和自定义动画)。

有可能吗?它似乎不允许显示空/不可见的气球,并且处理/重新添加图标没有预期的效果。我想知道每次收到消息时是否应该考虑创建辅助托盘图标(如Outlook的“新邮件”图标),并在消息消失时将其删除。

1 个答案:

答案 0 :(得分:1)

这是不可能的。通知区域的一个重要问题是每个程序员认为他的应用程序非常重要,可以在时钟旁边。谦虚不是程序员的特质,这是一件好事。

然而,用户设置了不同的优先级。他可能会运行更多而不是三个应用程序都认为他们应该拥有崇高的位置。这让真的失控,我看过Win98机器的截图,其中75%的任务栏都包含在重要程序中。

这是不可持续的,微软也做了些什么。他们添加了溢出区域,为用户认为不重要的通知图标提供了一个家。作为一名计算机用户,我很快就会购买我购买的新机器上的任何铲子图标。从那里,我卸载这个东西的速度与它完全无用或不可思议的信息气球的次数成反比。唯一真正幸存下来的是那些从未出现气球的人。

溢出区域的核心功能是程序不能做任何事情来提升自己在时钟旁边。这将彻底击败拥有它的点。除了显示气球之外,用户还需要知道它来自何处。最好是有意义且与用户相关的东西。如果不是,那么您的卸载程序是产品中最受测试的部分。

你自己也是一台电脑,并且也在讨厌恼人的通知图标。将完全相同的逻辑应用于您自己的逻辑。别忘了问别人他们对你的看法。如果您的通知足够有用,那么这只是照顾自己。您的用户将其移回。因为那是他能做的。