Hallo Leute,
ich versuche grade ein Texteditor zu machen. Leider bereitet mir die Drawstring
Methode einwenig Kopfschmerzen. Ich möchte das es möglich ist jedes Zeichen in einer Zeichenkette verschiedenfarbig und verschiedenen Schriftarten zu Zeichnen.
In moment benutze ich eine Collections von Strings für jedes Zeichen die ich dan in einer Schleife mit DrawString auf die Leinwand bringe. Leider bricht die Perfomance sehr stark ein sodas der Texteditor auf einen 1ghz nicht nutzbar ist da ich min 1 Sek bis das Repaint fertig ist warten muss. Da muss es doch eine schönere Lösung geben oder ?
Der Performanceeinbruch dürfte dann aber eher bei deiner Paint-Methode als bei den einzelnen DrawString-Aufrufen liegen. Erzeugst du evtl. jedesmal in deiner Paint-Methode die Ressourcen für Pen und Font neu???
Wenn nicht, dann zeig mal deine Paint-Methode...
Wahrscheinlich wird in der TextBox alles neu gezeichnet. Um die Performance zu verbessern sollten nur die notwendigen Bereiche neu gezeichnet werden, indem beim Aufruf der Invalidate-Methode die neu zu zeichnenden Bereiche angegeben werden. Außerdem sollten nur die notwendigen Buchstaben neu gezeichnet werden.
Ja ich zeichne das komplette Textcontrol neu. Werde ich mal ändern.
Dan habe ich aber immernoch das Problem das ich den Text in einen Layer zeichne. Wenn ich diese Layer veschiebe oder skaliere muss der Text mitziehen. Werde dan wohl den Text erst nach den Skaliervorgang anpassen müssen.
Danke für eure Hilfe
Habe mich entschieden das Control nochmal zu schreiben da dort vieles unüberlegt und suboptimal war. Falls immernoch performance Probleme habe, werde ich mich nochmal melden. Nochmals danke für eure Hilfe.