- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
至此,每个人都知道 ShellIconOverlayIdentifiers
的数量是有限制的(来自 MSDN):
The number of different icon overlay handlers that the system can support is limited by the amount of space available for icon overlays in the system image list. There are currently fifteen slots allotted for icon overlays, some of which are reserved by the system. For this reason, icon overlay handlers should be implemented only if there are no satisfactory alternatives
我可以理解 Windows 95 中的 15 个覆盖限制。但是在一个有 Gigs RAM、大量内核和 GPU 的环境中,现代操作系统中如此低的数量是否有一些技术原因?
为什么这个值不可配置?
在给出“性能”答案之前,请考虑:Windows 允许进行这样的配置,这样您就可以降低性能……为什么要特别挑这个问题?
最佳答案
除非这里有人碰巧在 Windows Shell 团队工作,否则我怀疑您会得到真正解决技术限制及其如何影响设计选择的答案。但我会尝试...
我的猜测是没有任何技术限制,或者至少现在没有。 真正的原因大概是没有人花时间坐下来更新代码、设计和规范来解除这一限制。功能不是默认实现的,只是因为计算环境在过去几年发生了变化并不意味着有人坐下来重写 Windows 以充分利用所有这些变化。
您还应该考虑到这很可能是一种有意识的设计选择,而不是强加的限制。Raymond Chen(他实际上确实在 shell 团队工作)发布一个blog entry回应有关 Windows 7 删除“共享手”覆盖的喧嚣。他提出了一个令人信服的论点,即图标覆盖确实不是显示信息的理想方式(除了系统限制为 15 个的事实之外)[重点添加]:
Generally speaking, overlays are not a good way of presenting information because there can be only one overlay per icon, and there is a limit of 15 overlays per ImageList. If there are two or more overlays which apply to an item, then one will win and the others will lose, at which point the value of the overlay as a way of determining what properties apply to an item diminishes since the only way to be sure that a property is missing is when you see no overlay at all. (If you see some other overlay, you can't tell whether it's because your property is missing or because that other overlay is showing instead of yours.)
在我看来,在大多数实际情况下,向 shell 添加额外的困惑是不值得的,这似乎是合理的。 Windows Shell 团队显然也得出了同样的结论,将“共享之手”的覆盖层切掉。 Raymond 直接解释:
Given the changes in how people use computers, sharing information is becoming more and more of the default state. When you set up a HomeGroup, pretty much everything is going to be shared. To remove the visual clutter, the information was moved to the Details pane.
而且,我知道您特别要求不要提及性能,但 Windows 确实尝试让您避免搬起石头砸自己的脚。用户需要 shell 的响应能力, 覆盖图标会干扰这一点。作为进一步证明它们不是优先事项的证据,another blog post同样被陈峰斥责:
Another example of applications having a selfish view of performance came from a company developing an icon overlay handler. The shell treats overlay computation as a low-priority item, since it is more important to get icons on the screen so the user can start doing whatever it is they wanted to be doing. The decorations can come later. This company wanted to know if there was a way they could improve their performance and get their overlay onto the screen even before the icon shows up, demonstrating a phenomenally selfish interpretation of "performance".
关于windows - ShellIconOverlayIdentifiers - 为什么这么少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4411336/
至此,每个人都知道 ShellIconOverlayIdentifiers 的数量是有限制的(来自 MSDN): The number of different icon overlay handle
图标叠加对我来说正在成为一个烦人的问题。在 windows10 上,您似乎可以设置 11 个(或者是 10 个?)覆盖图标,其他图标将被忽略。这是一个非常低的数字,即使是一项服务也很容易使用。 因此,
答案在这里: TortoiseSVN icons not showing up under Windows 7 建议您可能需要修改您的 Windows 注册表以使覆盖图标正确显示。 我已经在 rege
我是一名优秀的程序员,十分优秀!