TextRenderer.MeasureText 对于字符“&”返回 Width=0

发布于 2024-12-05 00:31:18 字数 405 浏览 1 评论 0原文

一切都在标题中。我尝试创建自己的 OpenGL 字体系统,并且需要获取要包含在 Sprite 纹理中的每个字符的大小。 除了字符“&”之外,一切都运行良好且准确。 (ascii 38)。即使我更改字体,该字符的宽度也始终返回零。身高不错。

最奇怪的是,如果我尝试测量“&&”的串联(Chr(38) & Chr(38)),结果看起来不错! 我还没有检查相同字体的另一个范围中的相同代码点是否会产生相同的错误,所以我不知道解决方法“如果字符是“38”测试“38+38”上的大小是否会 工作。

总是 对不起,我太傻了。我完全忘记说我在 VB.Net 下(但可以理解 C#)并且我使用 OpenGL 和 OpenTK 进行绑定。 TextRenderer 是 GDi+ 的一个类。我用它来创建我的字体纹理。这确实不是 OpenGL 问题。

All is in the title. I try to create my own OpenGL font system, and I need to get the size of each character I want to include in a Sprite texture.
All works well and accurately, except for the character "&" (ascii 38). Even if I change the font, this character always return zero for the width. Height is good.

The strangest thing is that, if I try to measure the concatenation of "&&" (Chr(38) & Chr(38)), the result seems good !
I haven't check to see if the same code point in another range of the same font product the same error, so I don't know if the workaround "if char is "38" test the size on "38+38" will always work.

EDIT:
Sorry,I'm so stupid. I completely forgotten to say I'm under VB.Net (but can understand C#) and I use OpenGL with OpenTK for the binding.
TextRenderer is a class of GDi+. I use this to create my font texture. This is really not an OpenGL issue.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

万劫不复 2024-12-12 00:31:18

的&在控制文本中使用来声明下一个字符是快捷键。例如,带有文本“E&xit”的控件会显示带有下划线“x”的“退出”,并且当用户按 Alt+X 时将激活。

要在测量中包含 & 符号,请使用:

TextRenderer.MeasureText(text, font, Size.Empty, TextFormatFlags.NoPrefix)

The & is used in control text to declare the next character is a shortcut key. For example, having a control with the text "E&xit" displays "Exit" with the "x" underlined and will activate when the user presses Alt+X.

To include ampersands in your measurement, use:

TextRenderer.MeasureText(text, font, Size.Empty, TextFormatFlags.NoPrefix)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文