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();
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();