2010-03-01 2 views
3

Я знаю, что в WPF, FontSize = 1/96 дюйма (то же, что и 1 пиксель, я думаю). Является ли размер FontSize высотой, шириной или диагональным размером символа? Я бы предположил, что это высота шрифта, но Microsoft documentation на самом деле не указывает, что это такое.WPF определение FontSize

Кроме того, есть ли простой способ получить высоту и ширину размера шрифта?

Ответ: Так выглядит FontSize высота и ширина может быть определена только (не зная фактический характер) на моноширинных шрифтов, поскольку пропорциональные шрифты различной ширины.

ответ

3

Они относятся к размеру шрифта, который используется в шрифтах для типографики.

Вы можете прочитать об этом здесь: Wikipedia: Typeface

Размер шрифтов и шрифтов традиционно измеряется в пунктах; 2 Точка была определена по-разному в разное время, но теперь наиболее популярной является точка Desktop Publishing 1/72 дюйма (0,0139 дюйма/0,35 мм). Если указано в типографических размерах (точках, кюсе), высота em-квадрата, невидимая коробка, которая обычно немного больше, чем расстояние от самого высокого уровня до самого нижнего спускового устройства, масштабируется до указанного размера. [3 ] Например, при установке Helvetica в 12 точках, квадрат em, определенный в шрифте Helvetica, масштабируется до 12 точек или 1/6 дюйма (0,17 дюйма/4,3 мм). Однако ни один конкретный элемент 12-балльной Helvetica не должен измерять ровно 12 очков.

A note ... 72 как указано в этой статье в Википедии, используется WinForms. WPF переключился на 96.

Что касается второй части вашего вопроса, я нашел этот ресурс из MSDN Link:

FormattedText formattedText = new FormattedText(
      textBox1.Text.Substring(0, 1), 
      CultureInfo.GetCultureInfo("en-us"), 
      FlowDirection.LeftToRight, 
      new Typeface(textBox1.FontFamily.ToString()), 
      textBox1.FontSize, 
      Brushes.Black 
      ); 

... formattedText.WidthIncludingTrailingWhitespace;

... formattedText.Height;

+0

Так звучит, что FontSize действительно является высотой, а ширина может быть определена (без знания фактического символа) на моноширинных шрифтах. Благодаря! –