WPF子窗口因为大小变动和区域限制导致闪烁的解决方案
闪烁原因:
SizeChanged 时调整 Top、MaxHeight等属性,WPF 会在布局更新时尝试重新计算窗口大小,系统认为窗口“可能要调整大小”,触发SetWindowPos,然后又回头触发SizeChanged,Win32 → WPF → Win32 形成拉锯,出现闪烁 / 抖动现象。
解决方案:
避免形成反馈回路,在布局更新外调整Top、MaxHeight等属性。
闪烁原因:
SizeChanged 时调整 Top、MaxHeight等属性,WPF 会在布局更新时尝试重新计算窗口大小,系统认为窗口“可能要调整大小”,触发SetWindowPos,然后又回头触发SizeChanged,Win32 → WPF → Win32 形成拉锯,出现闪烁 / 抖动现象。
解决方案:
避免形成反馈回路,在布局更新外调整Top、MaxHeight等属性。