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

问题描述 投票:0回答:1

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

我希望每次有消息时将我的 NotifyIcon 从系统托盘的溢出区域提升到可见部分。如果我在 NotifyIcon 上调用“ShowBalloonTip”,则效果很好;但是,我不想使用标准操作系统气球(我有一个自定义控件,它支持多个实例和自定义动画)。

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

c# winapi windows-shell
1个回答
2
投票

这是不可能的。通知区域的一个重要问题是,“每个”程序员都认为他的应用程序足够重要,可以放在时钟旁边。谦虚不是程序员的特质,但这是一件好事。 然而,用户设置不同的优先级。他们有可能运行“多于”三个应用程序,而这些应用程序都认为自己应该拥有较高的地位。这真的

失控了,我见过 Win98 机器的屏幕截图,其中 75% 的任务栏被重要程序覆盖。

这是不可持续的,微软对此采取了一些措施。他们添加了溢出区域,为用户认为不那么重要的通知图标提供一个主页。作为一名计算机用户,我购买的新机器上的铲子图标很快就会被填充。从那里开始,我卸载这些东西的速度与它向我提供完全无用或难以理解的信息的次数成反比。唯一真正存活下来的是那些从未出现过气球的人。 溢出区域的一个核心特征是程序不能

做任何事情来将自己提升到时钟附近。那将完全失去拥有它的意义。除了显示气球之外,用户还需要知道它来自哪里。最好是对用户有意义且相关的东西。如果不是,那么您的卸载程序是产品中经过最多测试的部分。

您自己也是一名计算机用户,也曾与烦人的通知图标作斗争。将完全相同的逻辑应用到您自己的逻辑中。并且不要忘记询问其他人对您的想法。如果您的通知足够有用,那么它就会自行解决。您的用户

将其移回。因为这就是他们能做的。

© www.soinside.com 2019 - 2024. All rights reserved.