internal void ShowUnreadIcon(int unreadEmails)
{
Bitmap bmp = new Bitmap(16, 16);
using (bmp)
{
using (Graphics gfx = Graphics.FromImage(bmp))
{
gfx.SmoothingMode = SmoothingMode.AntiAlias;
LinearGradientBrush grad = new LinearGradientBrush(new Point(0, 0), new Point(0, 16), ColorTranslator.FromHtml("#17d300"), ColorTranslator.FromHtml("#168b08"));
gfx.FillEllipse(grad, (float)0.25, (float)0.25, (float)15.25, (float)15.25);
StringFormat stringFormat = new StringFormat()
{
Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center,
};
gfx.DrawString(unreadEmails < 100 ? unreadEmails.ToString() : "~", new Font("Arial", unreadEmails < 10 ? 9 : 6, FontStyle.Bold), new SolidBrush(Color.White), new RectangleF(0, 0, 16, 16), stringFormat);
}
Icon ico = Icon.FromHandle(bmp.GetHicon());
try
{
TaskbarManager.Instance.SetOverlayIcon(ico, String.Format("{0} unread emails", unreadEmails));
}
finally
{
DestroyIcon(ico.Handle);
}
}
}