查帳這條線
重復(fù)這個(gè)答案的核心,您可以在窗口上打開WS_ex_Composed樣式標(biāo)志,以獲得窗體及其所有控件的雙緩沖。自XP以來,樣式標(biāo)志可用。這并不能使繪畫更快,但整個(gè)窗口是繪制在一個(gè)屏幕外的緩沖區(qū),并一刀切地閃現(xiàn)到屏幕上。使它在用戶的眼睛看起來即時(shí)沒有可見的繪畫文物。它并不是完全沒有麻煩,一些視覺樣式渲染器可以在它上故障,特別是TabControl,當(dāng)它有太多的標(biāo)簽。YMMV。
將此代碼粘貼到窗體類中:
protected override CreateParams CreateParams {
get {
var cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
} }
這種技術(shù)和Winform的雙緩沖支持之間最大的區(qū)別是Winform的版本只在一個(gè)控件上工作。您仍然會(huì)看到每個(gè)單獨(dú)的控件繪制本身。這看起來也像閃爍的效果,特別是如果未繪制的控制矩形與窗口的背景形成了嚴(yán)重的對(duì)比。