Frage von Benni517, 48

C# Zeichen Box?

Ich möchte so eine Box in C# erstellen wo man dann unterschreiben kann also etwas in die box zeichnen kann

Antwort
von CrystalixXx, 18

Nimm eine PictureBox. Dort brauchst du die Ereignisse "MouseDown", "MouseUp", "MouseMove" und "Paint".

Im "MouseDown" ermittelst du, wenn der Benutzer die Maustaste klickt (und gedrückt hält). Im "MouseMove" speicherst du die aktuellen Maus-Koordinaten in eine Liste. Im "MouseUp" beendest du den Vorgang, damit keine Punkte mehr in die Liste aufgenommen werden. Im Paint zeichnest du eine Linie (Bezierspline, Cardinal-Spline, Line, ...) entlang der Punkte aus der Liste.

Tipp: Speichere nur jeden Punkt, der einen gewissen Abstand zum vorherigen überschreitet oder zeichne nur jeden zweiten oder dritten Punkt, um flüssigere Linien zu erzeugen.

Kommentar von GustavAT ,

Jeden 2ten/3ten Punkt oder Punkte mit einem gewissen Abstand zum Vorgänger weglassen ist eher nicht sehr optimal. Verwende stattdessen zum Vereinfachen der Linie den Douglas-Peucker Algorithmus.

Kommentar von CrystalixXx ,

Ich weiß aber nicht, ob es dafür eine Implementierung im Framework geht. Sonst müsste man den selbst programmieren.

Kommentar von GustavAT ,

Also im GDI+ ist mir keine solche Methode bekannt. Aber es gibt ja genug vorhandene Implementierungen.

Antwort
von ccman32, 30

Ein wenig mehr Details wären nicht schlecht. Wie genau soll das "Unterschreiben" funktionieren? Soll das quasi eine Art Mini-Paint zum freien Zeichnen von Text oder was auch immer sein? Hast du so etwas schonmal woanders gesehen oder hast ein Beispiel davon aus einem anderen Programm?

Kommentar von Benni517 ,

Ja es soll so eine art Mini-Paint sein zum freien zeichnen

Kommentar von ccman32 ,

Soll der "Text" daraus dann auch in irgendeinem bestimmten Format gespeichert werden können? Muss das Steuerelement darüber hinaus noch irgendwelche spezifischen Funktionen haben (z.B. auswählbare Farben)?

Keine passende Antwort gefunden?

Fragen Sie die Community