C# に固定幅 (高さは問題ではありません) ラベル コンポーネントがあります。ここで、フォント サイズとフォント ファミリが指定されている場合、その幅に収まるおおよその文字数を計算したいと思います。レンダリング中にすべての文字が異なるピクセルを使用することを知っているため、正確な文字数を取得することはできません。しかし、ピクセル数が多い文字を考えて計算すると、提供されたフォントに応じて固定幅に収まるおおよその文字数が得られると思います。したがって、文字「W」を最も広い文字と見なす場合、特定の幅に収まる「W」の数をどのように計算するのでしょうか。
Graphics.MeasureString
キャラクターをレンダリングする前に必要なので、GDI+ メソッドを使用できません。
GDITextRenderer
クラスを使用する場合
SizeF sizeOfW = TextRenderer.MeasureText("W", new Font("DejaVu Sans", 28.0F));
上記の計算によれば、ラベルの幅を 80 px{59.0, 44.0}
とした場合、「W」は 1 つしかありませんが、実際にはそうではありません。
誰が私が間違っているのか教えてもらえますか?