Мне нужно найти ширину для этого символа Юникода [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