Procedura: Ridurre lo sfarfallio della grafica con doppio buffer per moduli e controlli
Il doppio buffering utilizza un buffer di memoria per risolvere i problemi di sfarfallio associati a più operazioni di rendering. Quando il doppio buffering è abilitato, tutte le operazioni di pittura vengono renderizzate prima su un buffer di memoria anziché sulla superficie di disegno sullo schermo. Al termine di tutte le operazioni di pittura, il buffer di memoria viene copiato direttamente nella superficie di disegno associata. Poiché viene eseguita una sola operazione grafica sullo schermo, lo sfarfallio dell'immagine associato a operazioni di disegno complesse viene eliminato. Per la maggior parte delle applicazioni, il doppio buffer predefinito fornito da .NET Framework fornirà i risultati migliori. I controlli Windows Forms standard sono doppiamente memorizzati in buffer per impostazione predefinita. È possibile abilitare il doppio buffer predefinito nei moduli e nei controlli che hai creato in due modi. È possibile impostare la proprietà DoubleBuffered su true
oppure chiamare il metodo SetStyle per impostare il flag OptimizedDoubleBuffer su true
. Entrambi i metodi abilitano il doppio buffer predefinito per il modulo o il controllo e forniscono rendering grafico senza sfarfallio. La chiamata al metodo SetStyle è consigliata solo per i controlli personalizzati per cui è stato scritto tutto il codice di rendering.
Per scenari di buffer doppio più avanzati, ad esempio animazione o gestione avanzata della memoria, è possibile implementare la propria logica di doppio buffering. Per altre informazioni, vedere Procedura: Gestire manualmente la grafica memorizzata nel buffer.
Per ridurre lo sfarfallio
Impostare la proprietà DoubleBuffered su
true
.DoubleBuffered = true;
DoubleBuffered = True
- o -
Chiamare il metodo SetStyle per impostare il flag OptimizedDoubleBuffer a
true
.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
Vedere anche
.NET Desktop feedback