在WPF字体大小和“标准”字体大小之间转换

时间:2010-08-09 21:31:11

标签: .net wpf font-size

我注意到在WPF中,12点的默认字体大小相当于“正常”应用程序中的9点(例如写字板),WPF中的10磅大约是7磅标准,当我尝试匹配时在WPF的写字板中默认字体大小为10 pt,我发现13是最接近的。

首先,为什么WPF使用这种奇怪的非标准字体大小,其次,是否有可靠的方法在两者之间进行转换?

我要问的原因是我想建立一个字体大小菜单,其中“标准”字体大小为9,10,12,14,16,18,24,36,48,但我很确定我是否使用那些实际价值,他们将疯狂。

2 个答案:

答案 0 :(得分:36)

WPF使用像素作为font size的默认单位。 points(可能是您说“标准”字体大小)和像素之间的映射是:1 pt =(96/72)px

这为我们提供了一个简单的转换功能:

public static double PointsToPixels(double points)
{
    return points*(96.0/72.0);
}

有关详细信息,请参阅this question

答案 1 :(得分:20)

另一种转换方法,如果从点到WPF double,则使用System.Windows.FontSizeConverter类:

double sizeForWpf = (double) new FontSizeConverter().ConvertFrom("10pt");