我有一个显示多个图形的表单,为了在渲染图形时改善视觉体验,我使用了this piece of code来启用双缓冲。
当我在不最小化/最大化表单的情况下执行应用程序时,Double Buffering工作得非常好,但是如果我碰巧最小化表单并再次最大化它,那么现在Double Buffering不再工作并且图形被重新绘制有明显的闪烁。
每次表单最小化/最大化时,有没有办法打开双缓冲?
答案 0 :(得分:1)
试试这段代码
bool hasMinimized;
void SizeChangedCallback(object sender, EventArgs e) {
if ( WindowState == FormWindowState.Minimized ) {
hasMinimized = true;
} else {
if ( hasMinimized ) {
hasMinimized = false;
/* Call SetStyle() in here */
}
}
}
您必须将表单的SizeChanged
事件与SizeChangedCallback
相关联
像这样:
this.SizeChanged += SizeChangedCallback;