Text zentrieren

torkel

Mitglied
Hallo


ich habe eine Frage betreffen TextAusgabe.


Ich habe ein PrintOut im Format (B x H) 10cm x 8cm. Darauf drucke ich
ein Text und zwar so:


Code:
e.Graphics.DrawString("Artikelname:", 
  new Font("Microsoft Sans Serif", 9.0f), 
   new SolidBrush(Color.Black), 
  new PointF(20.0F, 40.0F));

Ich positioniere hier den Text mit PointF. Das geht aber nicht immer
gut, denn ich sollte den Text zentriert haben. Gibt es da etwas, wo mir
den Text automatisch zentriert?




Klar könnte ich es auch mit PointF machen, aber es ist sehr
umständlich und der Text ist mal länger und mal kürzer, somit kann
ich es nicht mehr mit PointF machen.


Hat da jemand eine Idee?


greetz
Torkel
 
Mit der Methode MeasureString des Graphics Objektes kannst du dir die Breite eines Strings ausrechnen lassen. Diesen Wert kannst du dann für deine Positionierung heranziehen.
 
Hi Norbert Eder

wie funktioniert dass mit dem MeasureString genau? Mit dem lass ich die breite des Strings ausrechnen, das ist mir noch klar, aber wie positioniere ich dann schlussendlich den Text centriert?

hast du da evt. ein CodeBeispiel?

greetz

Torkel
 
Hallo torkel,

ich denke das geht auch einfacher. Du kannst einen weiteren Parameter "format" angeben.

Code:
        Dim strFormat As New StringFormat
        strFormat.Alignment = StringAlignment.Center


        e.Graphics.DrawString("Artikelname:", New Font("Microsoft Sans Serif", 9.0F), _
           New SolidBrush(Color.Black), New PointF(20.0F, 40.0F), strFormat)

schau dir das mal an.

Jens
 

Neue Beiträge

Zurück