Menangani kelipan kawalan pengguna semasa navigasi
Menavigasi antara kawalan pengguna sering membawa kepada kelipan visual kerana faktor -faktor seperti mengecat semula dan penggunaan imej latar belakang. Walaupun dengan pelbagai pelarasan gaya, masalah ini dapat berterusan.
Memahami isu kelipan
Berkelip dari proses rendering. Setiap kawalan pengguna melukis imej latar belakangnya, mewujudkan jurang sementara di mana kawalan kanak -kanak berada. Jurang ini dapat dilihat secara ringkas sebelum kanak -kanak mengawal semula, dan kontras dengan imej latar belakang memburukkan kesannya.
mengapa penyelesaian standard gagal
kaedah buffering double yang biasa seperti dan OptimizedDoubleBuffer
membuktikan tidak berkesan dalam situasi tertentu ini. UserPaint
Penyelesaian yang berkesan: WS_EX_COMPOSITED
WS_EX_COMPOSITED
<code class="language-csharp">protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // Enable WS_EX_COMPOSITED return cp; } }</code>
Pengoptimuman tambahan ini dapat meningkatkan prestasi lukisan dengan ketara:
Format32bppPArgb
WS_CLIPCHILDREN
<code class="language-csharp">protected override CreateParams CreateParams { get { var parms = base.CreateParams; parms.Style &= ~0x02000000; // Disable WS_CLIPCHILDREN return parms; } }</code>
Mengurangkan bilangan kawalan kanak -kanak secara dramatik meningkatkan kelajuan lukisan. Pertimbangkan untuk melukis elemen yang lebih mudah (teks atau imej) secara langsung dalam kaedah
kawalan pengguna dan bukannya bergantung pada kawalan kanak -kanak yang banyak.Atas ialah kandungan terperinci Bagaimanakah saya dapat menghilangkan kelipan dalam kawalan pengguna semasa navigasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!