微软终于开始用现代版本替换已有数十年历史的文件资源管理器“属性”对话框,这是公司推动 Windows 11 现代化的一部分。值得庆幸的是,新的“属性”对话框采用原生 WinUI 框架构建,我们没有看到任何基于 WebView2 的外壳痕迹。
目前,“属性”对话框仍是 Win32 的 comctl32.dll(通用控件库)原生界面,它最早随 Windows 95 一起发布。当然,过去几年它在外观上有所改进,但底层代码并没有发生根本变化。
微软此前已确认会用现代版本替换所有旧式对话框,包括 Windows 8 时代,甚至 Windows 95 时代的那些。Windows 设计的大规模更新何时开始推送一直不明确,但我们现在已经在预览版中看到了早期迹象。

微软观察者 PhantomOfEarth 在预览版中发现了新的“属性”对话框,与现有实现不同,新版本支持深色模式。
此外,它显然是用 WinUI 3 构建的,而不是 Win32 属性页。微软并没有混用这两种框架,我可以确认它完全基于 WinUI 3。
例如,仔细看会发现,“常规”选项卡使用了 Pivot 风格的标题栏,并支持强调色指示器,这只在 WinUI 3 框架中才有。Win32 没有这一点,在那里“属性”对话框使用的是 SysTabControl32,而它属于 comctl32。同样,恢复按钮也使用了 AccentButtonStyle。

最后,你还能看到采用 WinUI 3 指南的新复选框,带有圆角。虽然细节很小,但这对保持设计一致性是必要的。
微软计划彻底淘汰经典“属性”对话框,这很有意思,因为这个对话框几乎伴随 Windows 走过了三十年。现有的“属性”对话框基于 Windows 95 时代的属性页 API(PROPSHEETPAGE、shell32 中的 SHOpenPropSheet)构建,缺少深色模式和现代无障碍功能。
Windows 是一套传统操作系统,这也是公司过去尝试推出 Windows 10X 等版本的原因之一。Windows 很难在不破坏向后兼容性的情况下进行现代化。
这也意味着,微软不能只是给基于 Win32 的“属性”对话框套上现代设计,而不指望第三方应用出问题。
Windows 11 中属性页的新旧界面对比微软有责任支持数十年前的软件,这就是为什么你可以下载为 Windows 95 制作的应用或游戏,并且还能在 Windows 11 上运行。这样的向后兼容策略同样适用于“属性”以及其他旧式对话框和属性页,因为任何改动都可能破坏现有集成。
目前,第三方应用经常使用 IShellPropSheetExt 向“属性”对话框注入选项卡。
微软文档将 IShellPropSheetExt 描述为一个“允许属性页处理程序为文件对象显示的属性页添加或替换页面”的接口。
当应用使用该扩展向 Win32 属性页系统添加选项卡时,每个页面都会作为传统对话框创建,然后交回 Windows Shell。
这包括第三方杀毒软件、7-Zip、Dropbox、编解码器包等等,它们返回的都是基于 HWND 的页面。

微软正在用 WinUI 替换 Win32“属性”宿主,它需要一条 reverse-islanding 路径,将这些旧的 HWND 嵌入新的选项卡栏中,否则这些扩展会失效。上面的截图显示的是回收站项目,它只有“常规”选项卡,但其他程序并非如此。
例如,右键某些应用并打开其“属性”时,你会看到“安全”“详细信息”“以前的版本”,甚至第三方选项卡同时存在。目前还不清楚微软如何整合这些旧的第三方选项卡,但我猜它已经找到了 reverse-island 的实现方式。
我另一个担心是,WinUI 界面在加载运行时方面历来有冷启动成本。即使现在,文件资源管理器的 WinUI 右键菜单也因为这一点而受到批评。文件资源管理器中基于 WinUI 的“主页”选项卡比不使用 WinUI 的“此电脑”更慢。
这些情况应该很快会改善,因为微软计划优化 WinUI 3,这或许也能解释为什么这次改版比平时花了更长时间。
到目前为止,无论是 Windows 11 还是 Windows 7,Windows 的“运行”窗口在最近几代系统里大体看起来都一样,但微软希望改变这一点,甚至计划为“运行”对话框添加新功能。

在我们的测试中,Windows Latest 发现了一个新的现代版“运行”对话框,但它是可选的,需要在 设置 > 高级设置 中启用。

启用后,可使用 Win+R 快捷键打开现代版“运行”对话框,它几乎和旧版一样好。微软表示,现代版“运行”比旧版稍快一些,显示中位时间大约快 94 毫秒,而且还能通过 ~\ 直接跳转到用户目录。
唯一的缺点是你不能在屏幕上拖动它,但我认为在正式推送前这个问题会被解决。
微软还计划用 WinUI 替换 Windows 8 时代的设计元素,而 Windows Latest 了解到,大多数基于网页的组件正在用原生框架重写。
你怎么看 Windows 11 的现代“属性”选项卡、“运行”以及其他近期改进?欢迎在下方评论区告诉我。