【问题标题】:show count on minimized windows of your application in c#在 C# 中显示应用程序最小化窗口的计数
【发布时间】:2014-01-15 04:57:24
【问题描述】:

实际上,我想要类似 Skype 的东西。如果有人在 Skype 上发送两条消息;您会在最小化的 Skype 窗口上看到数字“2”。那么,我想知道如何在您的 c# 应用程序的最小化窗口上显示数字/计数?

【问题讨论】:

标签: c#


【解决方案1】:

如果您使用的是 WPF,则可以使用 TaskbarButtonInfo.Overlay 属性。

// draw an image to overlay
var dg = new DrawingGroup();
var dc = dg.Open();
dc.DrawEllipse(Brushes.Blue, new Pen(Brushes.LightBlue, 1), new Point(8, 8), 8, 8);
dc.DrawText(new FormattedText("3", System.Threading.Thread.CurrentThread.CurrentUICulture, System.Windows.FlowDirection.LeftToRight,
    new Typeface("Arial"), 16, Brushes.White), new Point(4, 0));
dc.Close();
var geometryImage = new DrawingImage(dg);
geometryImage.Freeze();

// set on this window
var tbi = new TaskbarItemInfo();
tbi.Overlay = geometryImage;

this.TaskbarItemInfo = tbi;

制作

如果您使用的是 Windows 窗体,请使用this related question 中记录的 Windows API 代码包。

【讨论】:

  • 我使用了代码包 API。我的应用程序将在 xp 上运行吗?因为code pack是windows 7 API,需要win7环境。
  • 对其进行引用不会限制它在 XP 上运行,但在调用需要更高版本操作系统的代码时可能会出现异常。
  • @Mitch - 这与我想要的非常接近,但有什么方法可以定位叠加层,使其完全居中任务栏图标的右下角?我知道我很迂腐,如果这是唯一的方法,我会接受这个,但是是的......从商店赢取 10 个应用程序可以做我想做的事,为什么我不能呢?!
  • @Kenny83,是什么让您认为 UWP 可以访问任何不同的工具?基本图标和叠加层都只是图像。叠加层处于您无法控制的固定偏移量,但如果您希望它们对齐,您可以调整您的两个图像以实现这一点。 (您也可以跳过使用覆盖图标并改为更改基本图标。)
  • @Mitch - 是的,我认为官方商店应用程序没有什么不同,因此我的最后一句话。我想 MSFT 的设计师在他们的工作上比我在设计图像方面做得更好,这并不让我感到惊讶,哈哈。特别是我在谈论邮件应用程序......试图使用它的图标和未读邮件徽章覆盖,但在排列后者时遇到了麻烦。哦,好吧,我想我只能忍受它偏离中心几个像素。
猜你喜欢
  • 2011-02-14
  • 2018-08-24
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
相关资源
最近更新 更多