读书人

依据矩形框的大小计算要显示文本的大小

发布时间: 2013-04-05 10:24:33 作者: rapoo

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

读书人网 >C#

热点推荐