Измерение ширины текста равно нулю при использовании свойства StringFormat.GenericTypographi c - PullRequest
0 голосов
/ 23 апреля 2020

Мне нужно найти ширину для этого символа Юникода [0307]. Итак, я использую метод GDI MeasureString, чтобы найти высоту и ширину символа Unicode. Я использовал StringFormat в качестве перегрузки в методе MeasureString. Создайте формат строки, используя свойство StringFormat.GenericTypographic, и найдите, что ширина символа равна нулю. Я создал строковый формат, используя StringFormat.GenericDefault Свойство и метод MeasureString имеют ширину для этого символа Юникода.

Фрагмент кода для воспроизведения проблемы.

Image bitmap = new Bitmap((int) 400, (int) 600);
using(Graphics graphics = Graphics.FromImage(bitmap)) {
    //StringFormat stringFormat = new StringFormat(StringFormat.GenericDefault);
    StringFormat stringFormat = new StringFormat(StringFormat.GenericTypographic);
    stringFormat.FormatFlags = 0;
    stringFormat.Trimming = StringTrimming.Character;
    graphics.PageUnit = GraphicsUnit.Point;
    Font accent_font = new Font("Cambria Math", 20);
    SizeF text_size = graphics.MeasureString('\u0307'.ToString(), accent_font, new PointF(0, 0), stringFormat);
    Console.Write(text_size);
    graphics.Dispose();
}
Console.ReadKey();

Я просто хочу знать, почему ширина равна нулю при использовании StringFormat.GenericTypographic Property

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...