栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

TextRenderer.MeasureText和Graphics.MeasureString大小不匹配

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TextRenderer.MeasureText和Graphics.MeasureString大小不匹配

TextRenderer
使用GDI呈现文本,而
Graphics
使用GDI +。两者使用略微不同的方法来布置文本,因此大小不同。

您应该使用哪一个取决于最终将用于实际绘制文本的内容。如果要使用GDI
+进行绘制

Graphics.DrawString
,请使用进行测量
Graphics.MeasureString
。如果使用GDI进行绘图,请使用进行
TextRenderer.DrawText
测量
TextRenderer.MeasureText

如果文本将显示在Windows Forms控件内,则使用

TextRenderer
if
UseCompatibleTextRendering
设置为
false
(默认)。

在问题的各行之间阅读,您似乎正在使用,

TextRenderer
因为事件
Graphics
外没有实例
Paint
。如果是这样,您可以自己创建一个进行测量:

using( Graphics g = someControl.CreateGraphics() ){    SizeF size = g.MeasureString("some text", SystemFonts.DefaultFont);}

如果您无权创建图形实例的控件,则可以使用该控件为屏幕创建一个实例,该控件可以很好地用于测量目的。

using( Graphics g = Graphics.FromHwnd(IntPtr.Zero) ){     SizeF size = g.MeasureString("some text", SystemFonts.DefaultFont);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379304.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号