Come posso abilitare il doppio buffering di un controllo usando C # (Windows Form)?
-
03-07-2019 - |
Domanda
Come posso abilitare il doppio buffering di un controllo usando C # (Windows Form)?
Ho un controllo pannello in cui sto disegnando elementi e anche un controllo scheda disegnato dal proprietario. Entrambi soffrono di sfarfallio, quindi come posso abilitare il doppio buffering?
Soluzione
Nel costruttore del controllo, imposta la proprietà DoubleBuffered e / o ControlStyle in modo appropriato.
Ad esempio, ho un semplice DoubleBufferedPanel il cui costruttore è il seguente:
this.DoubleBuffered = true;
this.SetStyle(ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.ResizeRedraw |
ControlStyles.ContainerControl |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.SupportsTransparentBackColor
, true);
Altri suggerimenti
alcune informazioni qui:
Utilizza la proprietà DoubleBuffered, ereditata da System.Windows.Forms.Control.
System.Windows.Forms.Form myForm = new System.Windows.forms.Form();
myForm.DoubleBuffered = true;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow