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

dev*_*os1 26 .net wpf font-size

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

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

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

Jos*_*ant 36

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

这给了我们一个简单的转换功能:

public static double PointsToPixels(double points)
{
    return points*(96.0/72.0);
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此问题.

  • 值得指出的是,WPF 文档将这些 1/96 英寸像素称为“em 单位”,这与“em”的印刷含义完全不同(与 [CSS](http://www.emunits.org/) 一起使用,从而使问题变得相当混乱。 w3.org/TR/CSS21/syndata.html#value-def-length)) (2认同)

toa*_*akz 21

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

double sizeForWpf = (double) new FontSizeConverter().ConvertFrom("10pt");
Run Code Online (Sandbox Code Playgroud)

  • 现在,如何将**转换回点**sizeForWpf? (3认同)