Hoi allemaal,
ik heb momenteel een probleem waar ik niet uitkom. Ik ben bezig om een custom UserControl te maken. Ik zit echter met een painting probleem. Ik wil effectief painten, wat inhoud dat alles wat niet op het scherm dient niet getekend te worden. Om dit te kunnen realiseren dien ik gebruik te maken van de ClippingRectangle die meegeleverd wordt met de PaintEventArgs. So far so good
.
Nu ben ik een tijd bezig geweest met mijn control en vroeg me zwaar af waarom de boel zo lagde. Ik had dubbelbuffering aan maar nog steeds leek alles gerepaint te worden bij een simple resize naar rechts (dus het scherm breeder maken). Normaal gesproken zou alleen het rechter gedeelte na het slepen gerepaint dienen te worden omdat de ClippingRectangle correct gezet wordt. Het probleem is echter wanneer ik een docking TabControl gebruik! De ClippingRectangle altijd het gehele scherm bevat!! Dus van x = 0, y = 0, width = window width, height = window height. Hier kan ik dus helemaal niets mee
omdat dit de reden is dat het ding zo hard lagged.
Nu heb ik lopen testen waarom het komt dat de TabControl in full docking mode alles probeerd te repainten maar ik kom er niet uit. De grap is namelijk dat als ik de TabControl niet dock ik wel X = 250 en dergelijke krijg en dus kan zien dat de ClippingRectangle werkt. Als ik bijvoorbeeld een panel gebruik (en deze full dock) en daarin mijn UserControl full dock, dan werkt de ClippingRectangle ook gewoon! Ik denk haast bijna dat dit een bug is in de TabControl?
Ik hoop dat iemand mij verder op weg kan helpen! Hopelijk zie ik wat over het hoofd!
ik heb momenteel een probleem waar ik niet uitkom. Ik ben bezig om een custom UserControl te maken. Ik zit echter met een painting probleem. Ik wil effectief painten, wat inhoud dat alles wat niet op het scherm dient niet getekend te worden. Om dit te kunnen realiseren dien ik gebruik te maken van de ClippingRectangle die meegeleverd wordt met de PaintEventArgs. So far so good
Nu ben ik een tijd bezig geweest met mijn control en vroeg me zwaar af waarom de boel zo lagde. Ik had dubbelbuffering aan maar nog steeds leek alles gerepaint te worden bij een simple resize naar rechts (dus het scherm breeder maken). Normaal gesproken zou alleen het rechter gedeelte na het slepen gerepaint dienen te worden omdat de ClippingRectangle correct gezet wordt. Het probleem is echter wanneer ik een docking TabControl gebruik! De ClippingRectangle altijd het gehele scherm bevat!! Dus van x = 0, y = 0, width = window width, height = window height. Hier kan ik dus helemaal niets mee
Nu heb ik lopen testen waarom het komt dat de TabControl in full docking mode alles probeerd te repainten maar ik kom er niet uit. De grap is namelijk dat als ik de TabControl niet dock ik wel X = 250 en dergelijke krijg en dus kan zien dat de ClippingRectangle werkt. Als ik bijvoorbeeld een panel gebruik (en deze full dock) en daarin mijn UserControl full dock, dan werkt de ClippingRectangle ook gewoon! Ik denk haast bijna dat dit een bug is in de TabControl?
Ik hoop dat iemand mij verder op weg kan helpen! Hopelijk zie ik wat over het hoofd!