如何创建丰富的通知区域提示和丰富的气球
我一直在想,当你调用NotifyIcon
类的ShowBalloonTip
方法,你会得到一个气球提示是这样的:如何创建丰富的通知区域提示和丰富的气球
FIG1:标准气球工具提示
微软产品的一些应用程序,并能显示更多的比那些“简单”的气球提示。
下面是一些样本:
Fig2:Windows更新气球工具提示
Driver Installation Tip http://i.msdn.microsoft.com/dynimg/IC295019.png
图三:硬件驱动程序的安装气球工具提示
图四:硬件删除工具提示(计划:USB安全删除)
好好看看图2,图3和图4表明它们不是标准的气球提示!
图2有不同的形状,可能从设置Region
属性。它还有一个比标准ToolTipIcon大得多的自定义图标。
图三使用标准形状(我认为),但它有一个自定义图标这不用说比默认ToolTipIcon大小。
图4使用标准ToolTipIcon,但它有不同的形状。
我的问题是如何创建在.NET中的通知区域中看到的任何'富'气球工具提示?我可以处理WinAPI以及它可以产生必要的输出。
你必须使用Win32函数Shell_NotifyIcon。您可以将NOTIFYICONDATA结构的dwInfoFlags成员设置为NIIF_USER,以便为气球工具提示使用自定义图标。
在Windows XP Service Pack 2及更高版本中,您可以使用hIcon成员来指定自定义图标。
在Windows Vista和更高版本上,NOTIFYICONDATA结构包含addiional成员hBalloonIcon。如果您已将cbSize成员设置为扩展的NOTIFYICONDATA结构的正确大小,则可以使用此成员来指定自定义图标。
检查了这一点:
http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx
或
www.codeproject.com/KB/WPF/wpf_notifyicon.aspx
另一种选择是让自己的申报书的气球, 那么你将有花背景和粉红色边框的通知:) 顺便说一句:它也可以有一些功能。
如本例:
http://i.stack.imgur.com/QtA0Y.jpg < <形象的例子
创建一个表单,只要你喜欢,地区,控件等:) 和代码是这样的:
void notifyIcon_MouseMove(object sender, MouseEventArgs e)
{
if (!this.Visible)
{
ShowPopup();
}
}
Timer t = new Timer();
private void ShowPopup()
{
Rectangle rect = Screen.GetWorkingArea(new Point(Screen.PrimaryScreen.Bounds.Right, Screen.PrimaryScreen.Bounds.Bottom));
this.Top = rect.Bottom - this.Height;
this.Left = rect.Right - this.Width;
this.Visible = true;
t.Interval = 4000;
t.Tick += new EventHandler(t_Tick);
t.Start();
}
void t_Tick(object sender, EventArgs e)
{
t.Stop();
Visible = false;
}
private void Form1_Click(object sender, EventArgs e)
{
this.Visible = false;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
notifyIcon.Visible = false;
notifyIcon.Dispose();
}
顺便说一句,他们都看起来有点相同,具有不同的图标大小, 和第一o ne可以适合右边,而所有其他的都对齐左边... 微小的阴影变化等等:) :)
你真的不需要这么做,也不需要使用WPF。 Windows内置了对此的支持。 – 2012-01-12 15:29:30
那么Windows API是有能力的......我没有找到一个强大的ENOGH,但更简单的方法。你有什么想法? – 2012-01-18 21:50:55
*我*好看并没有告诉我。你的外表有什么不同?是的,他们使用大型自定义图标。自从Windows XP SP2以来,它一直受到支持。使用['Shell_NotifyIcon'函数](http://msdn.microsoft.com/en-us/library/windows/desktop/bb762159.aspx)来创建它们。 – 2012-01-12 15:27:54