日期:2014-05-20 浏览次数:21109 次
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年第一帖就不会
郁闷!
------解决方案--------------------