日期:2014-05-17  浏览次数:20846 次

根据矩形框的大小计算要显示文本的大小?
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();