我想在 windows 上的系统托盘通知图标上显示数字
I want to display numbers on the system tray notification Icons on windows
我正在尝试创建一个基于通知图标的应用程序,我想在其中显示一些 1-999 之间的数字。
我查看了 this video,这与我想做的类似,但这里系统托盘图标只显示图标,它显示弹出窗口而不是显示数字或任何文本的系统托盘图标.
除了弹出项,我只想读取一个数字(从某处输入)并在通知图标部分显示该数字。
我愿意尝试任何技术(QT、.net)来完成这项工作。基本上,我正在寻找一些示例。
虽然你的部分问题含糊不清,但这很有可能,我什至敢说很简单。既然你提到你愿意尝试任何技术,C# 可能会为你简化事情。
- 生成一个新的 16 x 16
Bitmap
并使用 Graphics
class. 绘制数字
- 在处置您的
Graphics
对象后,将 Image
实例转换为 Icon
实例。
- 将
NotifyIcon
的 Icon
属性 设置为您刚刚创建的图标。
这些是基本步骤。如果您不熟悉所使用的 classes,您可能需要做一些研究。
感谢您回答我的问题。这是我想出的。不知道你说的是不是这个。
位图 bmp = 新位图(WindowsFormsApplication2.Properties.Resources._16by16BitmapIcon);
RectangleF rectf = new RectangleF(2, 2, 16, 16);
图形 g = Graphics.FromImage(bmp);
g.DrawString("99", 新字体("Tahoma", 7), Brushes.Blue, rectf);
pictureBox1.Image = bmp;
pictureBox1.Height = bmp.Height;
pictureBox1.Width = bmp.Width;
g.Dispose();
var thumb = (Bitmap)bmp.GetThumbnailImage(64, 64, null, IntPtr.Zero);
thumb.MakeTransparent();
notifyIcon1.Icon = Icon.FromHandle(thumb.GetHicon());
现在我的下一个问题可以用更好的方式完成吗?这是我的第一个 C Sharp 应用程序,欢迎任何建议!
public void ShowText(string text, Font font, Color col)
{
Brush brush = new SolidBrush(col);
// Create a bitmap and draw text on it
Bitmap bitmap = new Bitmap(16, 16);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.DrawString(text, font, brush, 0, 0);
// Convert the bitmap with text to an Icon
Icon icon = Icon.FromHandle(bitmap.GetHicon());
m_notifyIcon.Icon = icon;
}
我正在尝试创建一个基于通知图标的应用程序,我想在其中显示一些 1-999 之间的数字。
我查看了 this video,这与我想做的类似,但这里系统托盘图标只显示图标,它显示弹出窗口而不是显示数字或任何文本的系统托盘图标.
除了弹出项,我只想读取一个数字(从某处输入)并在通知图标部分显示该数字。
我愿意尝试任何技术(QT、.net)来完成这项工作。基本上,我正在寻找一些示例。
虽然你的部分问题含糊不清,但这很有可能,我什至敢说很简单。既然你提到你愿意尝试任何技术,C# 可能会为你简化事情。
- 生成一个新的 16 x 16
Bitmap
并使用Graphics
class. 绘制数字
- 在处置您的
Graphics
对象后,将Image
实例转换为Icon
实例。 - 将
NotifyIcon
的Icon
属性 设置为您刚刚创建的图标。
这些是基本步骤。如果您不熟悉所使用的 classes,您可能需要做一些研究。
感谢您回答我的问题。这是我想出的。不知道你说的是不是这个。
位图 bmp = 新位图(WindowsFormsApplication2.Properties.Resources._16by16BitmapIcon);
RectangleF rectf = new RectangleF(2, 2, 16, 16);
图形 g = Graphics.FromImage(bmp);
g.DrawString("99", 新字体("Tahoma", 7), Brushes.Blue, rectf);
pictureBox1.Image = bmp;
pictureBox1.Height = bmp.Height;
pictureBox1.Width = bmp.Width;
g.Dispose();
var thumb = (Bitmap)bmp.GetThumbnailImage(64, 64, null, IntPtr.Zero);
thumb.MakeTransparent();
notifyIcon1.Icon = Icon.FromHandle(thumb.GetHicon());
现在我的下一个问题可以用更好的方式完成吗?这是我的第一个 C Sharp 应用程序,欢迎任何建议!
public void ShowText(string text, Font font, Color col)
{
Brush brush = new SolidBrush(col);
// Create a bitmap and draw text on it
Bitmap bitmap = new Bitmap(16, 16);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.DrawString(text, font, brush, 0, 0);
// Convert the bitmap with text to an Icon
Icon icon = Icon.FromHandle(bitmap.GetHicon());
m_notifyIcon.Icon = icon;
}