Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set line spacing Graphics.DrawString

Tags:

c#

graphics

I arrive to output a string on multiple lines inside a retangle but haven't find a way to reduce or enlarge the line spacing. How to do that?

like image 534
Ronnie Avatar asked Dec 04 '08 21:12

Ronnie


2 Answers

This MSDN should help you. Line spacing is a result of the Font you are using. You may need to break your DrawString commands up into multiple calls if you need custom line spacing.

like image 91
grepsedawk Avatar answered Nov 04 '22 02:11

grepsedawk


This Microsoft forum posting may be helpful:

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1507414&SiteID=1

This shows how MeasureString can be used to determine how much of your text will fit on each line, then using this to progressively render the entire rectangle's contents line by line. Unfortunately I don't think there's a built-in line spacing property, so you'll have to go for the manual approach. The post's author uses the font's Height * 1.5.

It's also worth researching StringFormatFlags - you'll need to make sure both your DrawString and MeasureString calls use the same StringFormat so the rendering and measurement are consistent:

http://msdn.microsoft.com/en-us/library/system.drawing.stringformatflags.aspx

like image 38
Dave R. Avatar answered Nov 04 '22 02:11

Dave R.