On Windows 10 (builds below 22000), when a blurred window starts to move or size, ELYTerminal switches it to the clear accent, and back to acrylic when it rests, as you proposed. Windows 11 keeps acrylic throughout. I tested the switch on Windows 11 with the check forced; I had no Windows 10 machine. If dragging still lags, tell me here.
Fixed in 0.1.7: https://github.com/ELY-Open-Source/ELYTerminal/releases/tag/v0.1.7
On Windows 10 (builds below 22000), when a blurred window starts to move or size, ELYTerminal switches it to the clear accent, and back to acrylic when it rests, as you proposed. Windows 11 keeps acrylic throughout. I tested the switch on Windows 11 with the check forced; I had no Windows 10 machine. If dragging still lags, tell me here.
已在 0.1.7 修复:https://github.com/ELY-Open-Source/ELYTerminal/releases/tag/v0.1.7
Windows 10(build 22000 以下)开启模糊时,窗口开始移动或缩放即切换为透明 accent,停下后恢复亚克力,按你的方案实现;Windows 11 保持不变。我在 Windows 11 上强制验证了切换,手边没有 Windows 10 实机。如果拖动仍然卡顿,请在这里告诉我。
The project now lives on GitHub / 项目已迁至 GitHub:https://github.com/ELY-Open-Source/ELYTerminal
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
运行环境
background_blur: true,background_opacity: 0.88)。问题描述
在 Windows 10 下点击并拖拽标题栏或分栏顶部移动窗口时:
background_blur设为false或将background_opacity设为1.0,拖动立即恢复流畅。示例视频
原因分析
系统机制与 API 差异:
SetWindowCompositionAttribute开启亚克力模糊(ACCENT_ENABLE_ACRYLICBLURBEHIND,state 4)。DWM 模态移动循环性能瓶颈:
WM_ENTERSIZEMOVE~WM_EXITSIZEMOVE)。ACCENT_ENABLE_ACRYLICBLURBEHIND会在每一个像素坐标变化时,强制同步抓取桌面背景、进行下采样高斯模糊与噪点计算。WM_TIMER),持续触发 DirectXPresent绘制。建议修改方案
参考 Windows Terminal 以及各类 Win32 Fluent / Electron 亚克力应用的成熟实践:在模态移动/缩放循环期间临时降级模糊效果。
RtlGetVersion判断系统版本,仅对 Windows 10(Build < 22000)启用该优化。WM_ENTERSIZEMOVE(0x0231):如果当前启用了模糊,将 Accent 状态由4(ACCENT_ENABLE_ACRYLICBLURBEHIND)临时切换为2(ACCENT_ENABLE_TRANSPARENTGRADIENT)。此时窗口仍保持透明度与 DirectComposition 渲染,但 DWM 停止高开销的模糊采样,拖动恢复 100% 跟手。WM_EXITSIZEMOVE(0x0232):拖拽结束释放鼠标时,将 Accent 状态恢复为4,并通过SetWindowPos(SWP_FRAMECHANGED)通知 DWM 重新渲染亚克力模糊。WM_NCDESTROY和析构时清理 Window Property 与 Hook。修复效果验证
(由AI分析总结,并在本地验证可行。)
那我知道问题了。没有对10做优化。api接口不一样。我看看怎么更新。
Fixed in 0.1.7: https://github.com/ELY-Open-Source/ELYTerminal/releases/tag/v0.1.7
On Windows 10 (builds below 22000), when a blurred window starts to move or size, ELYTerminal switches it to the clear accent, and back to acrylic when it rests, as you proposed. Windows 11 keeps acrylic throughout. I tested the switch on Windows 11 with the check forced; I had no Windows 10 machine. If dragging still lags, tell me here.
已在 0.1.7 修复:https://github.com/ELY-Open-Source/ELYTerminal/releases/tag/v0.1.7
Windows 10(build 22000 以下)开启模糊时,窗口开始移动或缩放即切换为透明 accent,停下后恢复亚克力,按你的方案实现;Windows 11 保持不变。我在 Windows 11 上强制验证了切换,手边没有 Windows 10 实机。如果拖动仍然卡顿,请在这里告诉我。
The project now lives on GitHub / 项目已迁至 GitHub:https://github.com/ELY-Open-Source/ELYTerminal
没有问题了,感谢作者