Ik heb voor school een soort vector tekenprogramma geschreven in C#, echter begint het beeld behoorlijk te "flikkeren" als je eenmaal veel figuren hebt getekend, omdat hij dan elke keer bij de paint event al deze figuren opnieuw moet tekenen, en naarmate je meer figuren hebt getekend duurt dit dus langer in is het tekenen van de figuren als het ware zichtbaar door het flikkeren.
Dit flikkeren is vooral vervelend doordat het continu tijdens het tekenen gebeurd omdat wanneer je in mijn programma bijvoorbeeld een lijn tekent en op het startpunt hebt geklikt, dan tekent het programma steeds een soort van preview van de lijn naar het punt waar de cursor zich op dat moment bevindt (het figuur wordt pas echt aangemaakt als je op een tweede punt klikt). Maar elke keer als de muis beweegt moet dus de paint event van het formulier waarop wordt getekend worden aangeroepen en alle objecten opnieuw worden getekend, wat dus zorgt voor veel flikkering.
Het liefst zou ik nu dit zo veel mogelijk verminderen, zelf dacht ik aan het maken van een soort afbeelding van het formulier bij aanvang van het tekenen, zodat bij het alleen bewegen van de muis niet steeds alle figuren opnieuw moeten worden getekend maar alleen eerst deze afbeelding en daaroverheen het figuur wat op dat moment wordt getekend, als men dan klaar is met tekenen van een figuur moeten wel weer gewoon alle objecten eenmaal worden getekend.
Ik kom er echter niet uit hoe ik dit kan realiseren, het enige wat ik vond was een ToBitmap methode van het Graphics object, maar ook op het internet kon ik niet echt voorbeelden vinden die aansloten bij mijn probleem.
Kan iemand mij hiermee helpen, of kent iemand een betere oplossing?
Dit flikkeren is vooral vervelend doordat het continu tijdens het tekenen gebeurd omdat wanneer je in mijn programma bijvoorbeeld een lijn tekent en op het startpunt hebt geklikt, dan tekent het programma steeds een soort van preview van de lijn naar het punt waar de cursor zich op dat moment bevindt (het figuur wordt pas echt aangemaakt als je op een tweede punt klikt). Maar elke keer als de muis beweegt moet dus de paint event van het formulier waarop wordt getekend worden aangeroepen en alle objecten opnieuw worden getekend, wat dus zorgt voor veel flikkering.
Het liefst zou ik nu dit zo veel mogelijk verminderen, zelf dacht ik aan het maken van een soort afbeelding van het formulier bij aanvang van het tekenen, zodat bij het alleen bewegen van de muis niet steeds alle figuren opnieuw moeten worden getekend maar alleen eerst deze afbeelding en daaroverheen het figuur wat op dat moment wordt getekend, als men dan klaar is met tekenen van een figuur moeten wel weer gewoon alle objecten eenmaal worden getekend.
Ik kom er echter niet uit hoe ik dit kan realiseren, het enige wat ik vond was een ToBitmap methode van het Graphics object, maar ook op het internet kon ik niet echt voorbeelden vinden die aansloten bij mijn probleem.
Kan iemand mij hiermee helpen, of kent iemand een betere oplossing?