.net - TextRenderer.MeasureText 返回字符 "&"的 Width=0

标签 .net vb.net gdi+ textrenderer

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

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

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

最佳答案

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

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

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

关于.net - TextRenderer.MeasureText 返回字符 "&"的 Width=0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7437856/

相关文章:

c# - RegularExpressionValidator ErrorMessage 边界溢出两行

vb.net - 如何从字体文件名获取字体属性?

c# - 从 Access 数据库 Access 两列时出现 IndexOutOfRange 异常

delphi - 用 GDI+ 替换 StretchDIBits(在将图像绘制到打印机 Canvas 时)

c# - 如何使用C#GDI +图形和Windows窗体递归绘制希尔伯特曲线分形?

c# - 将文件/资源​​移动到 Visual Studio 中的 bin 文件夹

c# - 将 Java/Android 连接到 .NET Web 服务

c# - 托管 PNG 优化库可用吗?

vb.net - VB.NET 中有自动属性的代码片段吗?

c# - 如何在不使用 Bitmap.MakeTransparent() 的情况下在 C# 中将图像设置为具有透明背景?