
Сейчас диалог свойств встроен в Win32 comctl32.dll (библиотека Common Controls), впервые появившуюся в Windows 95. Конечно, за прошедшие годы он стал выглядеть лучше, но лежащий в основе код не менялся.
Microsoft ранее подтвердила замену всех унаследованных диалогов на современные, включая оставшиеся с Windows 8 и даже эпохи Windows 95. Когда начнётся крупное обновление дизайна Windows, было неясно, но теперь в предварительных сборках появляются первые признаки.

Наблюдатель за Microsoft PhantomOfEarth обнаружил в предварительных сборках новый диалог свойств, который, в отличие от существующей реализации, поддерживает тёмный режим. Более того, он явно построен на WinUI 3, а не на Win32-листе свойств. Microsoft не смешивает две платформы: редакция может подтвердить, что диалог полностью выполнен на WinUI 3.

Например, если присмотреться, вкладка “Общие” использует заголовок в стиле Pivot и поддерживает индикатор акцента, что свойственно только WinUI 3. В Win32 такого нет: там диалог свойств задействует SysTabControl32 из comctl32. Кнопка “Восстановить” тоже использует стиль AccentButtonStyle.
Наконец, появились новые флажки, соответствующие рекомендациям WinUI 3.
Microsoft полностью отказалась от классического диалога свойств, и это примечательно, ведь он был частью Windows почти три десятилетия. Существующий диалог построен на API листов свойств времён Windows 95 (PROPSHEETPAGE, SHOpenPropSheet из shell32) и не имел поддержки тёмного режима.
Почему Microsoft не может просто взять и осовременить компоненты Windows 11
Windows накопила большой багаж унаследованного кода, поэтому компания ранее пыталась создавать версии вроде Windows 10X. Модернизировать систему, не нарушая обратной совместимости, сложно. Microsoft не может просто применить современный дизайн к Win32-диалогу свойств, не опасаясь поломок в сторонних программах.

Для справки: Windows обязана поддерживать программы десятилетней давности, включая сторонние страницы листов свойств. Сейчас такие приложения часто добавляют вкладки в диалог свойств через расширение IShellPropSheetExt. Речь идёт об антивирусах, 7-Zip, Dropbox, наборах кодеков и подобных решениях. Все они отдают страницу на основе HWND.
“В Win32 объект окна идентифицируется значением, называемым дескриптором окна. Тип дескриптора окна: HWND (хотя в C# он представлен как IntPtr). В любом случае, термин HWND часто используется как сокращение для window handle”, — отмечает Microsoft в документации.
Microsoft заменяет хост свойств Win32 на WinUI, и для встраивания унаследованных HWND в новую панель вкладок требуется обратный путь интеграции (reverse islands), иначе расширения перестанут работать. На скриншоте выше показан элемент корзины, у которого есть только вкладка “Общие”, но для других программ это не так.
Например, если щёлкнуть правой кнопкой по определённому приложению и открыть его свойства, можно увидеть вкладки “Безопасность”, “Подробно”, “Предыдущие версии” и даже сторонние. Пока неясно, как именно Microsoft интегрирует эти унаследованные вкладки, но мы полагаем, что способ обратной интеграции уже найден.
Ещё один момент, вызывающий беспокойство: поверхности WinUI исторически страдают от задержки холодного старта из-за загрузки среды выполнения. Даже сейчас контекстное меню Проводника на XAML критикуют именно за это. Вкладка “Главная” в Проводнике работает медленнее, чем “Этот компьютер”, где WinUI не используется.
Всё это должно исправиться в ближайшее время: у Microsoft есть планы по оптимизации WinUI 3, и это, вероятно, объясняет, почему редизайн затягивается дольше обычного.





Пока нет комментариев. Будьте первым!