WinForms-在应用程序启动程序图标中显示通知计数

WinForms-在应用程序启动程序图标中显示通知计数,winforms,count,notifications,icons,app-launcher,Winforms,Count,Notifications,Icons,App Launcher,在我的WinForms应用程序中,我希望在应用程序启动程序图标中显示通知计数 如何做到这一点 我相信这就是你想要的,不幸的是,这是在WPF中。Winforms没有提供这样做的方法。您需要手动P/Invoke 下载并使用以下内容 private void SetTaskBarOverlay() { string notificationCount = "3"; //To do: Add this as a parameter var bmp = new Bitmap(32, 32

在我的WinForms应用程序中,我希望在应用程序启动程序图标中显示通知计数

如何做到这一点

我相信这就是你想要的,不幸的是,这是在WPF中。Winforms没有提供这样做的方法。您需要手动P/Invoke

下载并使用以下内容

private void SetTaskBarOverlay()
{
    string notificationCount = "3"; //To do: Add this as a parameter

    var bmp = new Bitmap(32, 32);
    using (Graphics g = Graphics.FromImage(bmp))
    {
        g.FillEllipse(Brushes.Blue, new Rectangle(Point.Empty, bmp.Size));
        g.DrawString(notificationCount, new Font("Sans serif", 25, GraphicsUnit.Point),
            Brushes.White, new Rectangle(Point.Empty, bmp.Size));
    }

    var overlay = Icon.FromHandle(bmp.GetHicon());
    TaskbarManager.Instance.SetOverlayIcon(overlay, "");
}

private void RemoveTaskBarOverlay()
{
    TaskbarManager.Instance.SetOverlayIcon(null, "");
}

您可以更改绘制代码以达到所需的效果。

Windows桌面操作系统中的应用程序启动程序图标是什么?你说的是快捷方式吗?不是,当应用程序运行时,底部显示的图标(以及开始按钮)。这正是我想要的。我下载了代码包并添加到我的项目中。还使用Microsoft.WindowsAPICodePack.Shell添加;在我的cs文件中,但尚未访问TaskbarManager。我遗漏了什么吗?嗯,你是手工做的还是用nuget做的?我使用了nuget,这对我很有效。您还需要它的从属包。您得到的错误是什么?我通过nugget-PM命令添加到我的项目中。应用程序无法识别TaskbarManager。“当前上下文中不存在TaskbarManager名称。在引用中,我可以看到Microsoft.WindowsAPICodePack。我在这里读到-,所以还添加了PresentationCore、PresentationFramework和windowsBase dll。但是,没有成功。我正在使用.NET4.5版本。