我们已经为Windows编写了一个WPF桌面应用程序。该应用程序在启动时启动,主要在后台运行,但具有可通过系统托盘访问的UI。有时,应用程序需要通知用户一些事情,因此,我们使用NotifyIcon库来生成通知。相关代码如下:
XAML:
<mui:ModernWindow
...
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tb="http://www.hardcodet.net/taskbar"
... >
<tb:TaskbarIcon
x:Name="MyAppIcon"
...
</tb:TaskbarIcon>
</mui:ModernWindow>
背后的C#代码:
using Hardcodet.Wpf.TaskbarNotification
public void ShowStartupBalloon(string message)
{
// show balloon with built-in icon ie 'Info'
MyAppIcon.ShowBalloonTip(Properties.Resources.App_Title, message, BalloonIcon.Info);
}
通知在任务栏附近显示为小的浮动窗口,但(有时,并不总是)它们包含字符串"microsoft.explorer.notification“和GUID。
我们希望消除这些错误,因为它们让我们的客户感到困惑;许多人认为软件中发生了某种错误。有人知道如何抑制它,以便只显示我们提供的通知的文本吗?
发布于 2019-08-12 07:33:13
我也遇到过这个问题。据我所知,最下面的文本是微软确保用户知道通知来源的方法,并且随机程序不能模拟真正的windows通知。包含ToolTipIcon (在您的示例中是信息图标)似乎会触发此操作。
因此,您可以通过不指定BalloonTipIcon来完全删除该文本,或者根本不定义该属性,或者将其定义为None:
MyAppIcon.ShowBalloonTip(Properties.Resources.App_Title, message, BalloonIcon.None);
当然,唯一的权衡就是你的通知won't have an icon。
希望这能有所帮助。
发布于 2019-08-16 18:03:13
显示带有自动超时的图标:
public static void ShowBalloon(string title, string body)
{
// Show with icon
NotifyIcon ni = new NotifyIcon() { Visible = true, Icon = Properties.Resources.Icon};
// Timeout is deprecated since Vista
ni.ShowBalloonTip(0, title, body, ToolTipIcon.None);
// Dispose on event
ni.BalloonTipClosed += (sender, e) => ni.Dispose();
}
https://stackoverflow.com/questions/55766617
复制相似问题