求解在导航期间用户控制闪烁
> 在控制更新期间,具有频繁用户控制导航的应用程序通常会闪烁。 虽然双重缓冲是一种常见的方法,但完全解决此问题并不总是足够的。
>这种闪烁的根本原因在于用户控件的绘画过程。 控件绘制其背景,留下儿童控制所在的差距。 然后,每个儿童控制都会绘制其内容,以填补这些空白。这些间隙的简短可见性(通常是白色或黑色)产生了闪烁的效果。这个问题是Windows形式体系结构对单个Windows的子女控制的固有的。 最有效的解决方案是为整个表格(包括其子控制器)启用双重缓冲。这是通过将表单的
属性设置为包含flag。
CreateParams
可以通过以下方式进行进一步的绩效改进以最大程度地减少闪烁。
WS_EX_COMPOSITED
优化背景图像:
采用背景图像的“瓷砖”布局来提高性能。 调整图像大小以精确拟合控件的尺寸或在UC的OnResize()
禁用WS_Clipchildren:Format32bppPArgb
样式,可防止其在子控制下绘画。这允许儿童控制直接在背景上绘画,从而掩盖了闪烁的差距。
通过直接在UC'sWS_CLIPCHILDREN
>
以上是为什么我的用户控制闪烁在导航时闪烁?如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!