根据矩形框的大小计算要显示文本的大小?
1、矩形框大小是固定的,但是在矩形框中显示的文本长度是不确定的,如果固定一个字体大小,当文本过长时,会出现文本显示不全的问题。我不知道c#中是否有方法可以根据矩形框的大小自动调整文本字体的大小?
2、如果1中没有这样的方法,我想根据矩形框的大小来计算要显示的文本的字体大小,应该怎么写?
请各位老师教我。
[解决办法]
1和2方法都可以,给你第1个方法的代码吧
RectangleF rc = new RectangleF(0, 0, 100, 50);//在大小为100*50的矩形内写文字
string str = "矩形框内的文字,可能有很多,但是矩形很小,怎么办了呢,改变字体大小吧";
Graphics g = this.CreateGraphics();
Font font = this.Font;
while (g.MeasureString(str, font, (int)rc.Width).Height > rc.Height) //计算合适的字体大小
font = new Font(this.Font.Name, (float)(font.Size - 1));
StringFormat format = new StringFormat();
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
g.DrawString(str, font, new SolidBrush(Color.Black),rc, format); ;
g.Dispose();