У меня фиксированная ширина (высота не проблема) компонент метки в C #. Теперь я хочу рассчитать, сколько примерно символов уместится на эту ширину, если размер шрифта и семейство шрифтов предоставлены. Я знаю, что для каждого символа при рендеринге используются разные пиксели, поэтому получить точное количество символов невозможно. Но я думаю, если мы возьмем букву, которая не занимает больше пикселей, и вычислим ее с учетом этой буквы, мы сможем получить приблизительное количество символов, которые уместятся в фиксированной ширине в соответствии с предоставленным шрифтом. Итак, если мы рассматриваем символ «W» как самый широкий, то как я могу рассчитать количество символов «W», подходящих для данной ширины.
Я не могу использовать метод GDI + Graphics.MeasureString
, так как я хочу его до рендеринга персонажа.
Когда я использую GDI TextRenderer
класс
SizeF sizeOfW = TextRenderer.MeasureText("W", new Font("DejaVu Sans", 28.0F));
Он возвращает {59.0, 44.0}
, что, как я считаю, совершенно неверно, потому что, если я принял ширину метки равной 80 пикселей, согласно приведенным выше расчетам, у него будет только одна буква «W», но на самом деле это не так.
Так может ли кто-нибудь сказать, где я ошибаюсь?
TextRenderer.MeasureText("WW", new Font("DejaVu Sans", 28.0F))
вернется для вас? - person AgentFire   schedule 19.01.2013