我被要求为数据库中的某些项目生成占位符图形,但有一个警告 - 字体大小需要是动态的,以便文本填充整个图形。
代码的第一次迭代工作得很好,但客户希望字体更大,以便图形更易于阅读。这是生成文本的部分的片段:
using (Graphics Graphic = Graphics.FromImage(Img))
{
// Add Some Padding
Width = Width - 20;
Height = Height - 20;
// Generate The Text
Font GraphicFont = new Font("Arial", 26, FontStyle.Bold);
RectangleF RectF = new RectangleF(10, 10, (float)Width, (float)Height);
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Near;
sf.LineAlignment = StringAlignment.Near;
Graphic.DrawString(Title, GraphicFont, Brushes.Black, RectF, sf);
}
有没有我可以检测到我的文本溢出RectangleF
,或者我可以在我将它应用到图形之前检测我的大小DrawString
,或者我可以做一些其他的魔法来让文本填充图形?
我希望文本自动换行,并且所有单词的字体大小相同,因此不一定需要完全填充图形 - 希望这一切都有意义。