- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到,当我将 TPanel.FullRepaint
设置为 False
时,调整大小闪烁
变得更好。由于该属性存在并且默认情况下为 True
,因此一定有某种原因。
如何决定是否设置?
帮助仅指出:
FullRepaint controls how the panel responds when it is resized. When FullRepaint is true, the entire panel, including the beveled border repaints when the size changes. When FullRepaint is false, only the area inside the beveled border repaints.
http://docwiki.embarcadero.com/Libraries/XE3/en/Vcl.ExtCtrls.TPanel.FullRepaint
该文字说明了它的作用,但没有说明原因......
最佳答案
可以显示缺失的 Fullrepaint 的效果,您必须决定是否需要它。
运行程序并调整窗体大小,有时第一个面板的边框不会刷新。
发生这种情况是因为在 WMWindowPosChanged 中,在 (FullRepaint 或 (ShowCaption and (Caption <> ''))) 的情况下,将调用 invalidate,否则仅包含右侧和/或底部的矩形的 InvalidateRect(Handle, Rect, True)边界无效。 (感谢 Sertac Akyuz 的修正)
正如您提到的,避免无效可以减少闪烁,并且在许多情况下,没有给出完全无效的需要,因此用户可以自行决定如何继续。
面板很少会被使用,上部没有Fullrepaint
关于delphi - 何时使用 TPanel FullRepaint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793438/
我注意到,当我将 TPanel.FullRepaint 设置为 False 时,调整大小闪烁变得更好。由于该属性存在并且默认情况下为 True,因此一定有某种原因。 如何决定是否设置? 帮助仅指出:
我是一名优秀的程序员,十分优秀!