字体样式问题

Love_Air523824 2010-10-25 09:12:06
我现在得到一个字体的宽和高,但不知道字体大小,比如宽=20,高=30。
我现在想根据这个设置字体。可font里只有字体大小。没有设置宽高的。有没有办法解决。要把字体显示在lable上。
...全文
256 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xx_lzj 2010-10-25
  • 打赏
  • 举报
回复
字体大小即Font.Size,此值为文字的全身高度。Font.Height则为带行间空白的行高:Font.Height=Font.Size+LineSpace。
对于某种字体,设计的形状已经确定,即宽高比已经确定,指定高度,也就指定了宽度。
所以,设置字体FontFamily及其高度即可。
如: Font font=new Font("宋体", 16);//16以磅(1/72 英寸)为单位
label1.Font = font;
Text = font.Size.ToString();//return 16
label1.Text = font.FontFamily.GetEmHeight(FontStyle.Regular).ToString();//return 256,使用字体设计时单位
需注意你给定的高=30,是否以磅为单位。如果不是,则根据显示器分辨率有关,比如,若为像素,则需获取当前Graphics的DpiY来得到垂直分辨率。
float dpi = this.CreateGraphics().DpiY;
Font font=new Font("宋体", (int)(30.0/dpi*72.0));
Love_Air523824 2010-10-25
  • 打赏
  • 举报
回复
4喽,你上边的宽高。w,h也没用到呀
Love_Air523824 2010-10-25
  • 打赏
  • 举报
回复
现在字体宽度是20,高度是30
按这个大小显示到lable上,我按上边的方法试了半天,都不行。希望能给点具体代码。谢谢了
HaveOneDream 2010-10-25
  • 打赏
  • 举报
回复
这个可以了解一下字体大小单位PT和像素px之间的关系
http://blog.sina.com.cn/s/blog_3de4869d0100ho63.html
wuyq11 2010-10-25
  • 打赏
  • 举报
回复
MeasureString 和MeasureCharacterRanges
string s="";
float w=0;
float h=0;
Graphics g=Graphics.FromHwnd(this.Handle);
Font myf=new Font( "宋体 ",15);
StringFormat sf=new StringFormat(StringFormat.GenericTypographic);
SizeF size=g.MeasureString(s,myf,1000,sf);


Love_Air523824 2010-10-25
  • 打赏
  • 举报
回复
试了下,不行呀
兔子-顾问 2010-10-25
  • 打赏
  • 举报
回复
using (Graphics g = 控件.CreateGraphics())
{
SizeF sf = g.MeasureString("字", 控件.Font);
//sf.Width
//sf.Height
}

111,129

社区成员

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

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

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