У меня есть метка, которая показывает имя файла .. Мне пришлось установить AutoSize
метки на False
для проектирования.
Итак, когда текст имени файла стал длиннее, чем размер ярлыка ... он обрезался, как на картинке.
label1.Size = new Size(200, 32);
label1.AutoSize = false;
Как автоматически изменить размер текста, чтобы он соответствовал размеру этикетки, если текст длиннее, чем размер этикетки?
Я использую следующий прием взвешенного масштабирования, чтобы обеспечить хорошее соответствие, то есть взвешенный компромисс сделан между подгонкой высоты и подгонкой ширины. Это в VB .net, но я думаю, что вы можете легко перевести на C #.
Function shrinkFontToFit(f As Font, text As String, requiredsize As SizeF) As Font
Dim actualsize As SizeF = TextRenderer.MeasureText(text, f)
Return New Font(f.FontFamily, f.Size * (requiredsize.Width + requiredsize.Height ) _
/ (actualsize.Width + actualsize.Height), f.Style, GraphicsUnit.Pixel)
End Function