У меня есть приложение с множеством элементов управления. И он очень сильно мерцает, особенно при запуске.
Я применил к нему это исправление.
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED
return cp;
}
}
Это отлично сработало - мерцание уменьшилось на невероятную величину. Однако побочным эффектом является то, что кнопки «Свернуть», «Развернуть» и «Закрыть» в правом верхнем углу окна не анимируются, когда я наводю указатель мыши на них или щелкаю по ним (хотя они все еще работают). Это придает приложению ощущение зависания.
Как сохранить WS_EX_COMPOSITED, сохранив при этом удобство использования кнопок «Развернуть», «Свернуть» и «Закрыть»?
Это происходит в Windows XP. Как отметил @fallenidol, в Windows 7 это не проблема.