Hallo Leute,
ich habe viele Anwendungen wo ich direkt im Paint-Event (von z.B. einem Panel oder Button) zusätzliche grafische Ausgaben mache.
Bisher eben immer im Paint-Event mit e.graphics.
Da ich jetzt an einem neuen Projekt arbeite und dieses sehr grafiklastige Ausgaben auf Panels macht, ist das direkte Zeichnen im .Paint Event zu langsam.
Zeichne ich aber alles in eine Bitmap und kopiere diese dann in das Panel.BackgroundImage, dann habe ich eine bis zu 200 Mal schnellere Ausgabe.
Hier ein Beispielcode:
ich habe viele Anwendungen wo ich direkt im Paint-Event (von z.B. einem Panel oder Button) zusätzliche grafische Ausgaben mache.
Bisher eben immer im Paint-Event mit e.graphics.
Da ich jetzt an einem neuen Projekt arbeite und dieses sehr grafiklastige Ausgaben auf Panels macht, ist das direkte Zeichnen im .Paint Event zu langsam.
Zeichne ich aber alles in eine Bitmap und kopiere diese dann in das Panel.BackgroundImage, dann habe ich eine bis zu 200 Mal schnellere Ausgabe.
Hier ein Beispielcode:
VB.NET-Quellcode
- 'Deklaration einer Bitmap
- Public ZeichenFlaeche As Bitmap
- Public Sub Zeichne(PNL As Panel)
- PNL.BackgroundImage = Nothing
- If ZeichenFlaeche IsNot Nothing Then ZeichenFlaeche.Dispose()
- ZeichenFlaeche = New Bitmap(PNL.Width, PNL.Height)
- Using g As Graphics = Graphics.FromImage(ZeichenFlaeche)
- g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
- g.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
- g.Clear(Color.Black)
- 'hier weitere Ausgaben mit g.DrawLine, g.DrawString etc. ausführen
- End Using
- 'Gezeichnete Bitmap auf das Panel zurückschreiben
- PNL.BackgroundImage = ZeichenFlaeche
- End Sub
Liebe Grüße
Roland Berghöfer
Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
Roland Berghöfer
Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dive26“ ()