Windows 10通知区域图标总是看起来非常模糊。

3
我在Windows 10中制作NotifyIcon时遇到了问题,它的图标资源看起来模糊不清。这种情况发生在使用SystemIcons类或使用Properties.Resources创建自己的图标时。我尝试使用“Icon(Icon original,int width,int height)”构造函数创建图标的新实例以及各种其他疯狂的方法,包括以下提示:
Icon ico = Icon.FromHandle((new Icon(Resources.InfoIcon, 256, 256).ToBitmap()).GetHicon());

无济于事。任何建议将不胜感激!


你尝试过以原始尺寸显示资源吗? - Stefan
我不完全确定你的意思,但是我那里有一个包含9个图标的.ico文件,从256x256一直到16x16,而且我已经手动尝试了所有大小都没有成功。 - Thanasi Poulos
@HansPassant,事实上,这是我尝试显示“NotifyIcon”的第一种方法。它不会显示任何东西...除非您给它一个图标参数,但它会立即忽略它(这是我刚刚发现的事实)。这也意味着我不能使用自定义图标。至于那篇链接的帖子,它对我没有起作用;可能与VS 2015有关? - Thanasi Poulos
它看起来确实很糟糕。 - tofutim
1个回答

5

截图中的可怜图标很容易解决,您忘记设置NotifyIcon.BalloonTipIcon 属性。或者使用带有 ToolTipIcon 参数的 NotifyIcon.ShowBalloonTip() 方法重载。使用 ToolTipIcon.Info 将获得高分辨率的系统默认图标。例如:

    notifyIcon1.ShowBalloonTip(5000, "eDIDIO", 
        "Connected successfully!", ToolTipIcon.Info);

这将产生:

enter image description here

如果您希望在此通知“气球”中显示自己的图标,则必须绕过ResourceManager.GetObject()方法中的限制。当您编写“Resources.InfoIcon”时,就是在使用它。GetObject()没有足够的参数来选择您所需的图标大小。请使用此答案中显示的代码。切勿使用GetHicon(),它在调色板映射方面效果非常差,并且只能生成16色图标。


谢谢,现在我可以得到漂亮的图标,如果我想使用默认的图标(说实话,我可能会这样做)。你提供的答案没有给我任何资源。另外,为什么我必须设置NotifyIcon.Icon属性和NotifyIcon.BalloonTipIcon属性才能显示BalloonTipIcon呢? - Thanasi Poulos
Icon和BalloonTipIcon是非常不同的属性。BalloonTipIcon不是Icon类型的属性,它是一个枚举。 - Hans Passant
Hans,我想使用ToolTipIcon.None并使用自己的图标,但是我需要使用什么尺寸才能使其看起来漂亮?它会共享一个64x64的图标吗? - tofutim
实际上,看起来那个图标是20。 - tofutim
汉斯,我已经在这上面工作了一段时间,似乎将NotifyIcon.Icon设置为不同大小的图标没有任何区别 - 它是从其他地方获取图标吗? - tofutim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接