WPF中FontSize的定义是什么?

3
我知道在WPF中,FontSize = 1/96英寸(我认为与1像素相同)。 FontSize维度是字符的高度、宽度还是对角线大小? 我猜它是字体高度,但Microsoft文档并没有真正说明它是什么。
此外,是否有一种简单的方法来获取字体大小的高度和宽度?
答案:看起来FontSize是高度,宽度只能在等宽字体上确定(不知道实际字符)因为比例字体具有不同宽度。
1个回答

3
他们所指的字体大小是排版中使用的字体大小。
您可以在这里阅读:维基百科:字体 引用:
字体和字号的大小传统上以点为单位进行测量; 在不同的时间点上,2个点的定义不同,但现在最流行的是桌面出版点,即1⁄72英寸(0.0139英寸/0.35毫米)。当以排版大小(点数,宫)指定时,一个em方块的高度(通常比从最高升高者到最低降低者的距离大一些的无形框)被缩放为等于指定的大小。例如,将Helvetica设置为12点时,Helvetica字体中定义的em正方形被缩放为12点或1⁄6英寸(0.17英寸/4.3毫米)。然而,12点Helvetica的任何特定元素都不需要精确测量12点。

这篇维基百科文章中提到,WinForms 使用的是72,而WPF则改为了96。

至于你问题的第二部分,我在MSDN链接中找到了一些资源:

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;

这两行代码涉及到文本格式化的宽度和高度。

所以听起来FontSize确实是高度,而宽度只能在等宽字体上确定(不知道实际字符)。谢谢! - Seth Moore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接