TextRenderer.MeasureText 返回 Width=0 表示字符"&"



全部在标题中。我尝试着创建自己的OpenGL字体系统,并且我需要获得我想要包含在Sprite纹理中的每个字符的大小。除了字符"&"之外,一切都运行良好且准确。(ascii 38)。即使我改变了字体,这个字符的宽度也总是返回0。高度好

最奇怪的是,如果我试着测量"&&"(对应(38),Chr(38)),结果似乎不错!我没有检查相同的代码点是否在相同字体的另一个范围内产生相同的错误,所以我不知道解决方案"如果char是"38"测试"38+38"的大小是否总是有效。

编辑:对不起,我太笨了。我完全忘了说我在VB下。Net(但可以理解c#),我使用OpenGL与OpenTK进行绑定。TextRenderer是GDi+的一个类。我用它来创建我的字体纹理。这真的不是OpenGL的问题。

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

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

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

最新更新