PopupNotify Control
This control is a popup notifier, similar to the ones seen in MSN Messenger. I developed it for XBList, based on the NotifyWindow on CodeProject. It improves upon the original by using the native AnimateWindow API to animate, which is much faster and smoother. It also allows for an image on the left of the popup, and an alpha-blended image in the background of the popup. It also will properly locate the system tray and pop in the correct direction no matter where the user's taskbar has been moved. The new version also has a much nicer Vista-inspired style.
There are two versions - an old version for use with .NET 1.1, and a newer implementation for .NET 2.0. The new implementation makes less P/Invoke calls, is better with memory, has improved drawing code, and a nice new "Vista-style" look.
The implementation of PopupNotify is rather rough, as it was meant simply to satisfy my need for such a control in XBList. It currently has some bugs, such as gray pixels around the edges of the themed close button, and total instability if you change any of the properties of the control. I've cleaned up the control a bit for others to use, but it could certainly use more work. Therefore, I've licensed the code under the LGPL, and I ask that you notify me of any changes or improvements you make, so that this control can be improved. If you make a useful modification, I'll be sure to add a credit to both the source file and this web page.
To use PopupNotify, simply drop it into your solution, then create a new PopupNotify, set its properties, and call Show(). That should be it!
Here's a screenshot of XBList using a PopupNotify window:
And here's a screenshot of an old build of XBList using the .NET 1.1 version of the control:
And here's an example of how to use it:
Brh.Forms.PopupNotify n = new Brh.Forms.PopupNotify();
n.Title = "Popup Title";
n.Message = "A short message.";
n.GradientColor = Color.Green;
n.BackColor = Color.WhiteSmoke;
n.Width = 330;
n.Height = 100;
n.IconImage = myImage;
n.IconHeight = 64;
n.IconWidth = 64;
n.BackgroundImage = myBackground;
n.Show();



