【问题标题】:Windows 10 NotifyIcon Icon always looks very pixilatedWindows 10 NotifyIcon 图标总是看起来很像素化
【发布时间】:2016-02-06 14:55:25
【问题描述】:

我在 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());

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

【问题讨论】:

  • 您是否尝试过以原始尺寸显示资源?
  • 我不完全确定你的意思,但是我那里的 .ico 文件包含 9 个图标,从 256x256 一直到 16x16,我已经手动尝试了所有尺寸,但无济于事。
  • @HansPassant,事实上,这是我尝试显示NotifyIcon 的第一种方法。它不显示任何东西......除非你给它一个图标参数,它会立即忽略它。 (我刚刚发现的一个事实)。这也意味着我不能使用自定义图标。至于那个链接的帖子,它对我不起作用;也许与 VS 2015 有关?
  • 看起来确实像垃圾

标签: c# .net winforms graphics icons


【解决方案1】:

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

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

产生:

如果您希望自己的图标显示在此通知“气球”中,那么您必须解决 ResourceManager.GetObject() 方法中的限制。这是您在编写“Resources.InfoIcon”时使用的内容。 GetObject() 没有足够的参数来选择您喜欢的图标大小。使用this answer 中显示的代码。顺便说一句,永远不要使用 GetHicon(),它在调色板映射方面做得很差,只能生成 16 色图标。

【讨论】:

  • 谢谢,如果我想使用默认图标,我现在可以获得漂亮的图标(老实说,我可能会这样做)。不过,您链接到的答案并没有给我任何资源。另外,为什么我必须设置NotifyIcon.Icon 属性以及 NotifyIcon.BalloonTipIcon 属性才能显示BalloonTipIcon
  • Icon 和 BalloonTipIcon 是非常不同的属性。 BalloonTipIcon 不是 Icon 类型的属性,它是一个枚举。
  • 汉斯,我想使用 ToolTipIcon.None 并让它拉出我自己的图标,但是我需要使用多大的尺寸才能让它看起来不错?它会共享一个 64x64 图标吗?
  • 其实那个图标好像是20
  • 汉斯,我一直在研究这个问题,似乎将 NotifyIcon.Icon 设置为不同大小的图标并没有什么不同 - 是从其他地方拉图标吗?
猜你喜欢
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
相关资源
最近更新 更多