grafică de tamponare dublu

Flicker este o problemă comună atunci când programarea grafică. operații grafice care necesită mai multe operații complexe de desen poate duce la faptul că imaginile vizualizate vor clipi sau au un aspect inacceptabil. Pentru a rezolva aceste probleme. NET Framework oferă acces la dubla tamponare.







Când dubla tamponare pentru a rezolva problemele asociate cu repetarea multiplă a operațiilor de tragere, utilizați un tampon în memorie. Dacă este dublu tampon este activată, toate operațiile de desenare se realizează mai întâi în memorie, iar apoi numai pe un ecran de computer. După finalizarea tuturor operațiunilor de tragere ale conținutului memoriei tampon este copiat direct la zona asociată a ecranului. Deoarece ecranul este realizată doar o singură operație grafică, flicker care apare adesea în operații complexe de desen dispare.

Cel mai simplu mod de a utiliza dubla tamponare - permite implicit dublu tampon pentru toate formele și controalele oferite de .NET Framework. Pentru a activa dublu-tampon pentru formulare Windows Forms și controale Windows, trebuie să setați o proprietate DoubleBuffered adevărată sau de a folosi metoda SetStyle. Pentru mai multe informații, consultați. În modul în care. Reducerea efectului jitter prin dublu tamponare pentru formulare și controale.







În cazuri mai complexe, de tamponare, de exemplu, pentru a afișa o animație sau un management complexe de memorie pot utiliza pentru a pune în aplicare personalizate clase logice NET Framework dublu tampon. Pentru selectarea tampoane grafice individuale și de management al clasei BufferedGraphicsContext responsabil. Fiecare domeniu de aplicație are propria copie a implicit BufferedGraphicsContext, care gestionează toate tamponarea dublu implicit pentru o anumită aplicație. În cele mai multe cazuri, aplicația are un singur domeniu și o instanță a BufferedGraphicsContext implicit. Copii implicite de management BufferedGraphicsContext clase BufferedGraphicsManager. Un link către implicit BufferedGraphicsContext instanță pot fi obținute prin contactarea BufferedGraphicsManager.Current de proprietate. În plus, puteți îmbunătăți performanța aplicațiilor, utilizând în mod activ capacitățile grafice prin crearea unui BufferedGraphicsContext exemplu dedicat. Pentru mai multe informații despre crearea unui exemplu BufferedGraphicsContext cm. În modul în care. Managementul grafică tamponat.

Pentru a utiliza BufferedGraphicsContext instanță a clasei pentru a crea tampoane grafice care pot provoca metoda BufferedGraphicsContext.Allocate. BufferedGraphics care returnează o instanță de clasă. BufferedGraphics Object servește pentru a controla memoria tampon asociată cu zona de redare, de exemplu, cu o formă sau control.

După crearea obiectului de clasă BufferedGraphics acest obiect ar gestiona imaginea de redare direct la buffer-ul de memorie. Pentru a transfera imaginea la buffer-ul de memorie poate fi utilizat BufferedGraphics.Graphics de proprietate. care servește pentru a accesa obiectul Graphics. reprezentând conținutul memoriei tampon. Transferarea imaginilor la obiect Graphics nu este diferită de a transfera imagini grafice obiect. care reprezintă suprafața ecranului. După înregistrarea tuturor informațiilor despre imaginea în clipboard, puteți utiliza metoda BufferedGraphics.Render. pentru a copia conținutul clipboard în zona dreaptă a ecranului.