问题描述
此时,每个人都知道 ShellIconOverlayIdentifiers
的数量有限(来自MSDN):
At this point, everyone knows that there's a limit to the number of ShellIconOverlayIdentifiers
(from MSDN):
我可以理解Windows 95中的15个叠加限制但是在一个有Gigs of RAM,众多内核和GPU的环境中,现代操作系统中出现如此低数量的技术原因是什么?
I can understand the 15 overlay limt in Windows 95. But in an environment where there's Gigs of RAM, numerous Cores, and GPUs, is there some technical reason for such a low number in a modern operating system?
为什么该值是否可配置?
And why isn't this value configurable?
在给出性能答案之前,请考虑:
Windows允许配置以便您可以杀死性能......为什么要专门选择这个问题?
Before giving the 'performance' answer, consider:Windows allows for configuration such that you can kill performance... why pick on this issue specifically?
推荐答案
除非有人在这里碰巧在Windows Shell团队工作,我怀疑你是否会得到一个真正解决技术限制以及它们如何影响设计选择的答案。但我会尝试......
Unless someone here happens to work on the Windows Shell team, I doubt that you're going to get an answer that really addresses the technical limitations and how they affect the design choice. But I'll try...
我的猜测是没有任何技术限制,或者至少现在没有技术限制。 真正的原因可能是没有人花时间坐下来更新代码,设计和规格来解除这个限制。默认情况下没有实现功能,只是因为计算环境在过去几年中发生了变化并不意味着有人坐下来重新编写Windows以充分利用所有这些变化。
My guess is that there isn't any technical limitation, or at least there isn't one now. The real reason is presumably that no one has ever taken the time to sit down and update the code, the design, and the spec to lift this limitation. Features aren't implemented by default, and just because the computing environment has changed in the last few years doesn't mean that someone sat down and rewrote Windows to take full advantage of all those changes.
你应该同时也认为这很可能是一种有意识的设计选择,而非强加的限制。 Raymond Chen(实际上 在shell团队中工作)发布了回应关于Windows 7消除共享手覆盖的骚动。他提出了一个令人信服的论点,即图标叠加真的不是一种显示信息的理想方式(超出系统限制为15的事实)[强调补充]:
You should also consider that is more than likely a conscious design choice, rather than an imposed limitation. Raymond Chen (who actually does work on the shell team) published a blog entry responding to the uproar about Windows 7 removing the "sharing hand" overlay. He makes a compelling argument that the icon overlay is really not a desirable way of showing information (above and beyond the fact that the system is limited to 15) [emphasis added]:
一般来说,叠加不是
呈现信息的好方法
因为每个图标只能有一个叠加
,并且每个ImageList的覆盖限制为15
。 如果有
两个或更多叠加适用于
项目,那么一个将赢,其他
将会丢失,此时
的值将覆盖作为一种确定
的方式,什么属性适用于某个项目
减少,因为唯一的方法是
确保缺少一个属性是
当你看不到重叠一点都不(如果
你看到一些其他叠加,你不能
告诉你是否因为你的
财产缺失或因为
其他叠加显示而不是
你的。)
对我而言,添加到shell中的额外杂乱在大多数现实世界中根本不值得案例。 Windows Shell团队显然得出了相同的结论并削减了共享手覆盖。 Raymond的直接解释:
It seems reasonable to me that the extra clutter added to the shell is simply not worth it in the majority of real-world cases. The Windows Shell team obviously reached the same conclusion and cut the "sharing hand" overlay. Raymond's direct explanation:
和,我知道你特别要求不要提及性能,但是Windows确实尝试让你无法自拔。用户需要在shell中做出响应,而叠加图标可能会干扰这个。作为进一步证明他们不是优先权的,由同一个Raymond Chen惩戒:
And, I know you specifically asked not to mention performance, but Windows really does try to keep you from shooting yourself in the foot. Users demand responsiveness in the shell, and overlay icons can interfere with this. As further evidence that they are not the priority, another blog post by the same Raymond Chen chastises:
这篇关于ShellIconOverlayIdentifiers - 为什么这么少?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!