Csharp dotnet winform label font resize method

private float GetFontSize(Label label, string text,int margin, float min_size, float max_size)
{
if (text.Length == 0) return min_size;

int wid = label.DisplayRectangle.Width - margin;
int hgt = label.DisplayRectangle.Height - margin;

using (Graphics gr = label.CreateGraphics())
{
while (max_size - min_size > 0.1f)
{
float pt = (min_size + max_size) / 2f;
using (Font test_font = new Font(label.Font.FontFamily, pt))
{
SizeF text_size = gr.MeasureString(text, test_font);
if ((text_size.Width > wid) || (text_size.Height > hgt))
max_size = pt;
else
min_size = pt;
}
}
return min_size;
}
}

--

--