[C#] Zeichentools wie?

Hiiims

Mitglied
Tag,

ich muss/soll in meinem Programm eine Möglichkeit haben, um einfache Dinge wie Linien, Rechtecke usw. vom User zeichnen zu lassen (also wie Paint nur einfacher). Mein Problem liegt jetzt nicht darin wie GDI+ funktioniert, sondern wie ich das ganze angehe.

Meine Idee war bisher, (z.B bei Linien) dass ich vielleicht in einer/m List/Array immer 2 Punkte speichere, die dann verbunden werden. Allerdings stellt sich hier das eigentliche Hauptprobblem: Die Linie soll nicht erst sichtbar sein, wenn der User beide Punkte angeklickt hat, sondern sollte schon immer vom ersten Punkt zum Mauszeiger verbunden werden, bis der 2. Endpunkt festgelegt wurde. Ein ständiger Clear()-Aufruf nach einer Bewegung des Mauszeigers wäre wohl nicht sehr ratsam, also bleibt wohl nur die Möglichkeit, die letzten 2 Punkte der Linie zu merken, diese dann erst wieder mit weiß zu übermalen, dann die neue Linie zu zeichnen, ODER? Da ergibt sich auch schon das nächste Problem: ich kann die alte Linie ja nicht einfach mit weiß oder so übermalen, da der Hintergrund irgendein Bild/Foto ist.

Denke ich zu kompliziert, mach ich irgendetwas falsch, oder ist wirklich so kompliziert?
Ich glaube ich werde Paint in Zukunft mit mehr Respeckt behandeln...
 

Norbert Eder

Erfahrenes Mitglied
Kann man davon ausgehen, dass du das mit Windows Forms machen willst, oder vielleicht doch eher etwas moderner mit WPF?

Grundsätzlich würde ich empfehlen mit Objekten zu arbeiten. D.h. für jede Aktion erstellst du eine eigene Klasse, die genau das abbildet, beispielsweise über Shapes etc. Diese enthalten, je nach Typ, die unterschiedlichen Informationen (Texte, Farben, Location, Size, etc.).