Skip to content

QuickLook-Next 5.0.0

Choose a tag to compare

@Adstrax Adstrax released this 13 Sep 09:17
· 0 commits to lite since this release

界面材质:菜单类界面改用 Windows 11 的材质

托盘菜单以前和 Win11 右键菜单看起来不一样,是因为两者根本不是同一种材质:我们用的是 WCA acrylic(ACCENT_ENABLE_ACRYLICBLURBEHIND)再叠两层自己调的 tint(accent 约 30% + 画刷约 55%),所以壁纸几乎透不出来、整体发白发平;Win11 菜单用的是系统材质,模糊更柔、壁纸颜色明显透出来。

这次改用 ACCENT_ENABLE_HOSTBACKDROP(accent state 5)——就是在 TranslucentTB 源码 Common/undoc/user32.hpp 里注释为 "allows desktop apps to use Compositor.CreateHostBackdropBrush" 的那一层,也就是 Win11 菜单所用的材质。关键点是:它在不抢焦点的窗口上依然会渲染——DWM 的 SystemBackdropType(3 / 6)在我们这类非激活窗口上只会渲染成纯色,这正是多年只能用 WCA 的原因。

同时把 tint 调淡(accent 12% + 画刷约 20%),壁纸才真正透得出来。

  • 生效范围:托盘菜单、插件管理窗口、更新提示框、下载进度面板
  • 预览窗口保持不变:继续使用 WCA acrylic(它是唯一在非聚焦状态下验证可用的方案)
  • 兼容回退:Windows 10 或 Win11 21H2 及更早没有 host backdrop 时,自动回退到原来的 WCA acrylic,只是 tint 更淡;不会出现"没有材质"的情况
  • 冒烟测试新增断言:每个菜单界面必须报告实际使用的材质(material=host-backdrop / material=acrylic),防止以后静默退化

怎么来的(对照实验)

并排渲染了四个候选:WCA acrylic、DWM backdrop 3(TransientWindow)、DWM backdrop 6(Acrylic11)、DWM backdrop 3 + 原生窗框(激活/非激活各一)。结果:

候选 结果
WCA acrylic(旧实现) 有模糊,但被两层 tint 压得很平
DWM backdrop 3 / 6,非激活 纯色,无模糊
DWM backdrop 3 + 原生窗框 + 强制激活 仍然纯色(说明系统材质对我们这类窗口不可用)
accent state 5 + 调淡 tint 模糊柔和、壁纸明显透出,最接近真实菜单

同一张截图中,资源管理器真实右键菜单材质正常;新实现与它的观感已经非常接近。

升级说明

这是界面可见变化,按你的要求版本号跳到 5.0.0(4.x 保留给你自己试验新功能用)。程序逻辑、预览性能、内存行为都没有改动。