TextRenderer.MeasureText为字符"&"返回宽度= 0

Nor*_*ris 2 .net vb.net gdi+ textrenderer

一切都在标题中.我尝试创建自己的OpenGL字体系统,我需要获得我想要包含在Sprite纹理中的每个字符的大小.除了字符"&"(ascii 38)之外,所有这些都能很好地准确地工作.即使我更改了字体,该字符的宽度也始终为零.身高很好.

最奇怪的是,如果我尝试测量"&&"(Chr(38)&Chr(38))的连接,结果似乎很好!我没有检查相同的代码是否在同一字体产品的另一个范围内相同的错误,所以我不知道是否解决方法"如果char是"38"测试"38 + 38"的大小将总是工作.

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

Han*_*ood 5

&用于控制文本以声明下一个字符是快捷键.例如,使用带有文本"E&xit"的控件显示"Exit",带有下划线的"x",并在用户按下Alt + X时激活.

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

TextRenderer.MeasureText(text, font, Size.Empty, TextFormatFlags.NoPrefix)
Run Code Online (Sandbox Code Playgroud)