日期:2014-05-20 浏览次数:20953 次
private FontUnit MN_GetFontSize(string P_String) { Size size_2; Bitmap _bitmap = new Bitmap(Convert.ToInt32(this.Width.Value), Convert.ToInt32(this.Height.Value)); Graphics _graphics = Graphics.FromImage(_bitmap); float fontsize = 0.1f; SizeF _sizef = new SizeF(); do { Font font_1 = new Font("Arial", fontsize); _sizef = _graphics.MeasureString(P_String, font_1); fontsize += 0.1f; Size size_1 = _sizef.ToSize(); if (size_1.Height > Convert.ToInt32(this.Height.Value)) { break; } size_2 = _sizef.ToSize(); } while (size_2.Width <= Convert.ToInt32(this.Width.Value)); return new FontUnit(Convert.ToInt32((double) (fontsize - 0.1))); }
------解决方案--------------------
不会,帮顶!
------解决方案--------------------
先按某个固定大小的画,然后保存成图片形式,再加载进来。
------解决方案--------------------
Graphics.MeasureString
------解决方案--------------------
学习。
------解决方案--------------------
/// <summary> /// 获取字体 /// </summary> /// <param name="s">字符串容器Size</param> /// <param name="P_String">字符串内容</param> /// <param name="sFontName">字体名称</param> /// <returns></returns> private Font GetFont(Size s ,string P_String,string sFontName) { Bitmap _bitmap = new Bitmap(s.Width, s.Height); Graphics _graphics = Graphics.FromImage(_bitmap); float fontsize = 0.1f; for(Size _size = new Size();_size.Width<s.Width && _size.Height <s.Height;fontsize += 0.1f) { Font font_1 = new Font(sFontName, fontsize); _size = _graphics.MeasureString(P_String, font_1).ToSize(); } return new Font(sFontName,fontsize - 0.2f); } private void Form1_Load(object sender, System.EventArgs e) { label1.Text = "测试字符..."; label1.Font = GetFont(label1.Size,label1.Text,"宋体"); }
------解决方案--------------------
学习
------解决方案--------------------
ding
------解决方案--------------------
xuexi!
------解决方案--------------------
09年第一帖就不会
郁闷!
帮顶
------解决方案--------------------
09年第一帖就不会
郁闷!
------解决方案--------------------