Laden...

Textboxinhalt in Bitmap schreiben

Erstellt von MFG vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.637 Views
M
MFG Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren
Textboxinhalt in Bitmap schreiben

hallo,
habe das Forum und FAQs schon danach durchsucht, aber nichts passendes gefunden.
Und zwar möchte ich den Inhalt (Text) einer Textbox (evtl. auch Richtextbox) als Grafik zeichen und in ein Bitmap übergeben.

Natür ist das mit DrawString() etc. möglich, allerdings muss ich die Absätze dann immer selbst setzen.

Kennt jemand eine Variante den Text mit Formatierung (und Absätzen) in eine Graik zu zeichnen?

Danke

Gelöschter Account
vor 13 Jahren

Ja, mit Control.DrawToBitmap(...)

Ob das allerdings auch bei den genannten Controls Einwandfrei funktioniert, musst du noch selbst herausfinden.

M
MFG Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren

danke, das wäre möglich. Ich glaube dann muss ich aber die Scrollfunktion der Textbox ausschalten. Kennt jemand eine Methode dies zu verwirklichen?

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo MFG,

Ich glaube dann muss ich aber die Scrollfunktion der Textbox ausschalten.

aus welchem Grund?

herbivore

Gelöschter Account
vor 13 Jahren

Also den inhalt einer Textbox kannst du auch mit dem TextRenderer relativ simpel mit automatischen Zeilenumbrüchen zeichnen aber das geht nicht für die Richtextbox.

F
155 Beiträge seit 2009
vor 13 Jahren

Hallo,

aber das geht nicht für die Richtextbox.

Das funktioniert für die Richtextbox auch (TextBoxRenderer.DrawTextBox-Methode (Graphics, Rectangle, String, Font, TextBoxState) für textBoxText einfach den Text angeben)

Sollte das Bild unscharf sein siehe DrawImage ist unscharf beim drucken

fz

"We better hurry up and start coding, there are going to be a lot of bugs to fix."

Gelöschter Account
vor 13 Jahren

Das funktioniert für die Richtextbox auch

Ah ja? dann bin ich mal gespannt.... zeig mal schemantisch 😃

F
155 Beiträge seit 2009
vor 13 Jahren

Hallo,


Bitmap bmp = new Bitmap(200, 200);
Graphics g = Graphics.FromImage(bmp);

g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; 

TextBoxRenderer.DrawTextBox(g, new Rectangle(0, 0, 200, 200), richTextBox1.Text, richTextBox1.Font, System.Windows.Forms.VisualStyles.TextBoxState.Readonly);

pictureBox1.Image = bmp;

so funktioniert es bei mir...

fz

"We better hurry up and start coding, there are going to be a lot of bugs to fix."

795 Beiträge seit 2006
vor 13 Jahren

Auch wenn du einen Teil des Textes anders formatiert hast als den Rest?

Oder geht das nur mit der Standard-Formatierung des RichtextBox-Textes?

`There are 10 types of people in the world: Those, who think they understand the binary system Those who don't even have heard about it And those who understand "Every base is base 10"`
Gelöschter Account
vor 13 Jahren

@F.Z.:

ja, genau das habe ich mir gedacht. Das besondere einer Richtextbox ist, das man Texte verschiedentlich separat voneinander Formatieren kann. Daher würde dein vorgehen unter Umständen nicht das wiedergeben, was die Richtextbox anzeigt.

F
155 Beiträge seit 2009
vor 13 Jahren

ah ok, die Formatierung hatte ich nicht bedacht 🤔

fz

"We better hurry up and start coding, there are going to be a lot of bugs to fix."

M
MFG Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren

ja, die Formatierung möchte ich beachten. Wie ihr schon gesagt habt erlaubt mir die RichTextBox verschiedene Formatierungen, die ich dann auch übernehmen möchte.

Eure Antworten haben mir aber schon sehr weitergeholfen! Danke vielmals!