- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当文本换行到固定宽度时,为什么 MeasureString 返回不正确的文本字符串高度?
var labelFont = new Font("Courier New", 11, FontStyle.Bold);
StringFormat format = StringFormat.GenericTypographic;
format.FormatFlags |= StringFormatFlags.MeasureTrailingSpaces;
var size = g.MeasureString("This is a very very very very very very very very very long string", labelFont, 300, format);
size.Height
给出了不正确的值。我发现我需要取返回高度的大约 1/3 才能得到类似于真实高度的任何值。
我正在尝试将文本字符串绘制到背景图像上;所以我需要知道换行文本的高度才能知道下一个文本字符串原点的 y 值。
此代码在 ASP.NET 网络应用程序中使用。
最佳答案
您的 MeasureString
调用为字符串指定了 300
的最大宽度。这意味着您的很长的字符串被分成多行,这会导致字符串的计算高度更高。
注意字符串的最大宽度不是以字符为单位,而是以像素为单位。
关于c# - 在 C#/.NET 中,Graphics.MeasureString 方法给出了不正确的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952564/
我在C ++中使用GDI +。 (此问题也可能在C#中存在)。 我注意到,每当我调用Graphics :: MeasureString()或Graphics :: DrawString()时,该字符串
如果我使用下面的文本宽度计算大小,它会给我说 500 intWidth = (int)objGraphics.MeasureString(String.concat(sImageText1, sIma
我们使用 Measurestring() 根据文本的长度计算大小。对于不同的屏幕分辨率,MeasureString() 给出不同的大小。 Graphics g; Size size = g.Meas
我们正在使用 SharpDX 开发 Windows 8 Metro 应用程序.现在我们必须在 Rectangle 中声明一组字符串.为此,我们尝试使用 SharpDX.DrawingSizeF 找出字
我正在使用一个函数来调用要在区域内呈现的一段文本。该函数的基本工作原理是: Dim measureSize as Size Do myFont = new Font(myFont.Name,
我正在尝试完成一个可以在屏幕上布局文本的代码。以下 C# 代码放置在一个否则为空的 Windows 窗体的 Paint 事件处理程序中就是一个示例: string[] s = new string[]
这个问题在这里已经有了答案: GDI+ MeasureString() is incorrectly trimming text (1 个回答) 关闭 7 年前。 我一直在尝试查找自动收报机磁带类型
我使用 Graphics.MeasureString 来计算文本的大小。EG:10 像素 = 7.5 点。 我的问题:大小是根据Graphics.MeasureString点值还是像素值计算出来的?
我正在使用 C# 中的 System.Drawing 库来测量字符串的大小: SizeF size = gfx.MeasureString("Hello", myFont); 但是,这会返回文本周围有
我注意到 Graphics.MeasureString 在不同分辨率下的奇怪行为。 对于默认分辨率 (96x96),我测试的不同字体大小之间存在线性关系。 但是,如果我将它提高到 512 x 512,
鉴于我已经知道宽度,我需要计算字符串的高度。 例如,如果有一个字符串,如“Curabitur semper ipsum semper nulla dictum,vel vulputate elit f
请看我的代码: Graphics grfx = Graphics.FromImage(new Bitmap(1, 1)); System.Drawing.Font f = new System.Dra
为什么我必须将 MeasureString() 结果宽度增加 21%size.Width = size.Width * 1.21f;在 DrawString() 中避免自动换行? 我需要一个解决方案来
我正在生成收据并使用 Graphics 对象调用 DrawString 方法来打印出所需的文本。 graphics.DrawString(string, font, brush, widthOfPag
我一直在尝试在 C# 中找到一种方法来测量字符串的大小。 standard method在 Win32 中测量字符串是使用 GetTextExtent。真正的目标是找到字体字符的平均宽度和高度。查找字
这不是一个舍入问题。差异 ~ 5+ 像素。 测试用例字符串:“”MACD (26,12,9) -0.000016” e.Graphics.MeasureString("MACD (26,12,9) -
当文本换行到固定宽度时,为什么 MeasureString 返回不正确的文本字符串高度? var labelFont = new Font("Courier New", 11, FontStyle.B
我有一个重写的 (WinForms) MemoEdit 控件(不幸的是我不能给你代码)。如果我输入超过 32000 个字符,它会引发错误“GDI+ 中发生一般性错误”我以为我的控件中有错误(异常),但
我是一名优秀的程序员,十分优秀!