[WPF] Tausende verbundene Linien zeichnen

07/18/2015 16:59 King Sora#1
Hallo! :)

Derzeit habe ich ein kleines Problem bzgl. WPF und den Geometrischen Shapes:
Ich möchte mit dem Path-Shape dutzende verbundene Linien darstellen, ohne das mein Programm anfängt zu laggen. Man könnte es sich etwas wie das Lasso-werkzeug aus Paint.NET oder Photoshop vorstellen. Leider fängt mein Programm ab ca. 1000 Linien / anderen geomertischen Figuren an zu laggen.

Und nun kommt ihr ins spiel, habt ihr eine Idee wie ich mein Vorhaben realisieren kann? Die gezogene Geometrie sollte am Ende immer noch ein Vektor sein, und nach möglichkeit auch animierbar bleiben.

Lg. Sora
08/01/2015 16:07 King Sora#2
Alles Klar, für die welche es interessiert.. ich habe das Problem folgendermaßen gelöst:

Ich habe ein WPF Control erstellt welches eine ImageSource darstellt. (Mittles einem Drawing objekt kann man ImageSources zeichnen. Auch der DrawingContext eines Control besitzt eine .DrawImage() methode welche als Parameter eine ImageSource verlangt.)

Diese ImageSource bekomme ich von einer System.Drawing.Bitmap, auf welcher ich mittles dem System.Drawing.Graphics meine Geometrie zeichnen kann. (Man muss die System.Drawing.Bitmap aber in eine System.Windows.Media.ImageSource erst konvertieren!)

Die WPF Geometry wird mit einem von mir geschriebenen Konverter in ein System.Drawing.Drawing2D.GraphicsPath objekt konvertiert, welches dann schlussendlich mit dem System.Drawing.Graphics objekt gezeichnet wird.

Das ganze ist ziemlich performant (10.000 Linien in ca. 0.25 Sekunden), und kann sogar Asynchron gerendert werden. Mittles eines Loop Events kann man seine Zeichnung sogar animieren.

Alles in allem ziemlich umständlich und es ist bleibt kein Vektor, aber das kann ich am Ende doch einbüßen.

Lg. Sora