Двойни буферни графика

Flicker е често срещан проблем при програмирането графика. Графични операции, които изискват няколко сложни операции за рисуване може да доведе до това, че се визуализират изображения ще мигат или имат неприемлив външен вид. За решаване на тези проблеми. NET Framework предоставя достъп до двойно буфериране.







Когато двойно буфериране за решаване на проблемите, свързани с множествена повтаряне на операциите тираж, използването на буфер в паметта. Ако двойно буфериране е активирана, всички рисуване операции се извършва за първи път в паметта, и то само на екрана на компютъра. След завършване на всички операции за рисуване на съдържанието на буферната памет се копира директно към съответната група на екрана. От екрана се извършва само една графична работа, трептенето, което често се случва в сложни операции тираж изчезва.

Най-лесният начин да се използва двойно буфериране - даде възможност подразбиране двойно буфериране за всички форми и механизми за контрол, предвидени в рамката за .NET. За да включите двойно буфериране за формуляри Windows Forms и контролите на Windows, трябва да зададете на имот DoubleBuffered вярно или използвайте метод SetStyle. За повече информация, вижте. В Как. Намаляването на трептене ефект чрез двойно буфериране за форми и контрол.







В по-сложни случаи, буфериране, например за да се покаже анимация или комплекс за управление на паметта може да се използва за изпълнение по поръчка логически класове .NET Framework двойно буфериране. За избора на отделните графични буфери и отговорно управление на BufferedGraphicsContext клас. Всеки домейн приложение си има собствено копие на по подразбиране BufferedGraphicsContext, което управлява всички подразбиране двойно буфериране за дадено приложение на. В повечето случаи, приложението има само един домейн и едно копие на BufferedGraphicsContext по подразбиране. По подразбиране Копия управление BufferedGraphicsContext класове BufferedGraphicsManager. Връзка към подразбиране BufferedGraphicsContext инстанция може да се получи, като се свържете BufferedGraphicsManager.Current собственост. В допълнение, можете да подобрите работата на програмите като активно използване на графичните възможности, чрез създаване на специален случай BufferedGraphicsContext. За повече информация относно създаването на инстанция BufferedGraphicsContext см. В Как. Управление буфериран графика.

За да използвате BufferedGraphicsContext инстанция на класа, за да създадете графични буфери, които могат да причинят метод BufferedGraphicsContext.Allocate. BufferedGraphics, че се връща инстанция на класа. BufferedGraphics обект служи за контрол на буферната памет, свързана с областта за изобразяване, например с форма или контрол.

След създаването BufferedGraphics клас обект този обект ще управлява изображението оказване директно към буфера на паметта. За прехвърляне на изображението към буфер памет може да се използва BufferedGraphics.Graphics собственост. която служи за достъп до Графичният обект. представлява съдържанието на буфера памет. Прехвърляне на изображения към обекта Graphics не се различава от прехвърляне на снимки, Графичен обект. което представлява областта на екрана. След заснемане на цялата информация за изображението в клипборда, можете да използвате метод BufferedGraphics.Render. за да копирате съдържанието на клипборда в дясната зона на екрана.