На данный момент все знают, что существует ограничение на количество ShellIconOverlayIdentifiers
(из MSDN):
Количество различных обработчиков наложения значков, которые может поддерживать система, ограничено объемом пространства, доступным для наложений значков в списке системных образов. В настоящее время для наложения значков выделено пятнадцать слотов, некоторые из которых зарезервированы системой. По этой причине обработчики наложения значков следует внедрять только в том случае, если нет удовлетворительных альтернатив.
Я могу понять ограничение на 15 оверлеев в Windows 95. Но в среде, где есть гигабайты ОЗУ, многочисленные ядра и графические процессоры, есть ли какая-то техническая причина для такого низкого числа в современной операционной системе?
И почему это значение нельзя настроить?
Прежде чем дать ответ «производительность», подумайте: Windows позволяет такую конфигурацию, что вы можете убить производительность ... зачем выбирать именно эту проблему?
источник
Ответы:
Если кто-то здесь не работает в команде Windows Shell, я сомневаюсь, что вы получите ответ, который действительно касается технических ограничений и того, как они влияют на выбор дизайна. Но я попытаюсь...
Я предполагаю, что никаких технических ограничений нет или, по крайней мере, сейчас нет. Настоящая причина, по-видимому, в том, что никто никогда не удосужился обновить код, дизайн и спецификацию, чтобы снять это ограничение. Функции не реализованы по умолчанию, и то, что вычислительная среда изменилась за последние несколько лет, не означает, что кто-то сел и переписал Windows, чтобы в полной мере воспользоваться всеми этими изменениями.
Вы также должны учитывать, что это более чем сознательный выбор дизайна, а не навязанное ограничение. Рэймонд Чен (который на самом деле делает работу в команде оболочки) опубликовал запись в блоге отвечая на шум о Windows-извлекая на «совместное использование руки» накладку. Он приводит убедительный аргумент в пользу того, что наложение значков на самом деле не является желательным способом отображения информации (помимо того факта, что система ограничена 15) [курсив добавлен]:
Мне кажется разумным, что лишний беспорядок, добавленный в оболочку, просто не стоит того в большинстве реальных случаев. Команда Windows Shell, очевидно, пришла к такому же выводу и отказалась от наложения «руки общего доступа». Прямое объяснение Раймонда:
И, я знаю, вы специально просили не упоминать о производительности, но Windows действительно пытается удержать вас от ранения себе в ногу. Пользователям требуется отзывчивость оболочки, и накладываемые значки могут этому помешать. В качестве дополнительного доказательства того, что они не являются приоритетом , другой пост в блоге того же Раймонда Чена наказывает:
источник
ShellIconOverlayIdentifiers
запись в реестре с помощью OneDrive crud начиная с Win10. Для разработчика, использующего что-то вроде TortoiseSVN / GIT, эти наложения имеют решающее значение, и тот факт, что может быть показан только один, является причиной ПОЧЕМУ .Отличный ответ Коди по практическим вопросам. Что касается того, почему 15, а не какое-то другое число, лимит встроен в сам элемент управления ImageList .
источник
Все это очень хорошо, как объяснил Коди Грей, но, честно говоря, это довольно невообразимо и, как сообщалось за кулисами, звучит немного разочарованно.
В 2015 году и с Windows 10, безусловно, может и должна быть улучшенная возможность, поскольку я заметил около тридцати наложений и должен был расставить приоритеты, которые я хотел бы видеть больше всего, а это совсем не то, о чем вы хотите, чтобы большинство людей вообще беспокоились. Также я вижу, как агрессивные производители, такие как Box, чрезмерно конкурируют, пытаясь расставить приоритеты, и это никогда не пойдет ни к чему хорошему.
Вот возможность: что, если бы у нескольких наложенных значков был общий индикатор наложения; небольшая прямоугольная матрица из нескольких цветов, такая как кнопка Google Chrome Apps? При одинарном наложении просто отображается наложение из длинного списка.
Затем, когда указатель мыши встречается со значком, небольшое всплывающее окно собирает все варианты значков для просмотра (с маленьким размером значка или немного большим). Каждый наложенный значок, в свою очередь, объявляет всплывающей подсказкой при наведении курсора мыши.
Теперь у вас могут быть все необходимые наложения значков для состояния в различных облаках, для индикации репозитория, инструментов Tortoise и так далее.
источник