【发布时间】:2014-10-14 12:24:31
【问题描述】:
我使用 TextRendere.MeasureText 而不是 Graphics.MeasureString,因为它允许我指定 TextFormatFlags.NoPadding,但它的返回宽度是几个像素宽。对于四个字符的文本字符串,它超过五个像素,对于一个五个字符的文本字符串,它超过六个像素。我敢肯定它会更多地使用更长的文本字符串。我正在使用.Net 4.5.1。这是我的代码:
Size size = TextRenderer.MeasureText(items[a], new Font("Segoe UI", 12, GraphicsUnit.Pixel), new Size(Width, 15), TextFormatFlags.NoPadding);
如何获得准确的(+- 1/2px 即可)文本宽度?谢谢:D
【问题讨论】:
-
听起来是 n 个字符数 + 1。你可以走 hacky 路线并做:items[a].Length + 1
-
我想它只是具有额外空格的文本字形。
-
+gmiley no 最多添加7个像素。
-
+Alex Anderson 如何删除多余的空格?
-
可能您的源文本包含换行符,因此会计算一个额外的字符
标签: c# .net winforms graphics drawing