我在 C# 中有一个固定宽度(高度不是问题)标签组件。现在我想计算如果提供了字体大小和字体系列,大约有多少字符适合该宽度。我知道每个字符在渲染时都采用不同的像素,因此无法获得确切的字符数。但是,我认为如果我们采用不占用更多像素的字母并考虑该字母进行计算,我们将能够根据提供的字体获得适合固定宽度的近似字符数。因此,如果我们将字符“W”视为最宽的字符,那么我将如何计算适合特定宽度的“W”的数量。
我不能使用 GDI+Graphics.MeasureString
方法,因为我需要在渲染角色之前使用它。
当我使用 GDITextRenderer
类时
SizeF sizeOfW = TextRenderer.MeasureText("W", new Font("DejaVu Sans", 28.0F));
它返回{59.0, 44.0}
,我发现这是完全错误的,因为如果我将标签的宽度设为 80 px,根据上面的计算它将只有一个 'W' 但实际上并非如此。
那么有人能告诉我哪里出错了吗?