2012-04-30 22 views
5

Sto cercando di scrivere del testo in C# in modo che si estenda sulla larghezza richiesta (circa).C# calcola l'altezza di una stringa con la larghezza data

Per scrivere il testo è necessario specificare l'altezza. Quindi ho bisogno di sapere quale altezza lo farebbe scrivere alla lunghezza desiderata.

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

Ive ha trovato il seguente, ma richiede FONT, che richiede altezza. Quale sconfigge l'intero punto?

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

Come faccio a determinare l'altezza necessaria per fare, ad esempio: "Sono una stringa" 50px tratto.

+0

'MeasureString' con diverse dimensioni dei punti carattere e selezionare il migliore. – Oded

+0

Quindi i suoi tentativi ed errori? Sto disegnando un sacco di stringhe .. di dimensioni diverse, sicuramente misurando molte volte per ognuna non è il modo migliore? – Doomsknight

+1

Non è efficiente, ma se si inizia con una dimensione ragionevole (probabilmente derivata dalla larghezza in pixel), è possibile minimizzare le prove. – Oded

risposta

4

C'è un esempio sul sito switchonthecode (nota - versione archiviata). Forniscono un metodo che prende una dimensione minima e massima del carattere insieme alla dimensione dell'area. Prova la dimensione minima e da lì determina il rapporto tra il carattere e quindi determina la dimensione migliore per te.

Problemi correlati