WinForm中 graphics.MeasureString()文本字体不同在矩形中垂直不居中

小淘气_CC 2013-12-02 01:58:33
oneSize = graphics.MeasureString(showText.Caption, getFont(), Int32.MaxValue, GetFormat());
得到字体尺寸
e.Graphics.DrawString(showText.Caption, getFont(), SbFont, rectFont,GetFormat());
//将对应的文字写到矩形上
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
现在我的矩形和得到字体尺寸大小一样,按理说是上下边缘刚好的。
现在出现字体设置的不同,就会出现垂直不居中问题。因为我的矩形是有背景色的,看着很明显。
这个怎么解决啊,大神!!!

能设置的都试过了,自己感觉问题出在字体上,每个字体不同,得到的字体高度有偏差,上下会出现留白,怎么能把行距,留白等去掉???




...全文
216 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小淘气_CC 2013-12-02
  • 打赏
  • 举报
回复
引用 3 楼 feiyun0112 的回复:
就是矩形的RectangleF




e.Graphics.DrawString(showText.Caption, getFont(), SbFont, rectFont,GetFormat());我这个方法用的就是矩形的,问题不再这,问题是字体换了垂直居中有偏差。
feiyun0112 2013-12-02
  • 打赏
  • 举报
回复
就是矩形的RectangleF
小淘气_CC 2013-12-02
  • 打赏
  • 举报
回复
[quote=引用 1 楼 feiyun0112 的回复:] e.Graphics.DrawString(showText.Caption, getFont(), SbFont,矩形.Size, rectFont,GetFormat()); ***************************************************************************** 没有这个加载方法,要不就是x,y画图的起始坐标,要不就是矩形区域。矩形.size,和矩形同时用,错的。
feiyun0112 2013-12-02
  • 打赏
  • 举报
回复
e.Graphics.DrawString(showText.Caption, getFont(), SbFont,矩形.Size, rectFont,GetFormat());

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧