2012-04-30 11 views
5

Ich versuche, Text in C# zu schreiben, so dass es die erforderliche Breite (ungefähr) überspannt.C# Berechnen Sie die Höhe einer Zeichenfolge mit der angegebenen Breite

Um Text zu schreiben, müssen Sie die Höhe angeben. Also muss ich wissen, welche Höhe es auf die gewünschte Länge schreiben würde.

Font myFont = new Font(FontFamily.GenericSansSerif, unknown); 
gc.DrawString(LabelText, myFont, gBrush, 0, 0); 

Ich habe folgendes gefunden, aber es erfordert FONT, die Höhe erfordert. Was besiegt den ganzen Punkt?

gc.MeasureString(LabelText, new Font(FontFamily.GenericSansSerif, 12), length); 

Wie würde ich die erforderliche Höhe ermitteln, um zum Beispiel "Ich bin ein String" zu strecken 50px.

+0

'MeasureString' mit verschiedenen Schriftgrößen und wählen Sie die beste aus. – Oded

+0

Also sein Versuch und Irrtum? Ich zeichne viele Saiten .. von verschiedenen Größen, sicher viele Male für jeden zu messen ist nicht der beste Weg? – Doomsknight

+1

Es ist nicht effizient, aber wenn Sie mit einer vernünftigen Größe beginnen (möglicherweise von der Breite in Pixel abgeleitet), können Sie Versuche minimieren. – Oded

Antwort

4

Es gibt ein Beispiel auf der Website switchonthecode (Hinweis - archivierte Version). Sie bieten eine Methode, die eine minimale und maximale Schriftgröße zusammen mit der Größe Ihres Bereichs berücksichtigt. Es versucht die Mindestgröße und bestimmt von da aus das Verhältnis der Schrift und bestimmt dann die beste Größe für Sie.

Verwandte Themen