代码之家  ›  专栏  ›  技术社区  ›  devios1

在WPF字号和“标准”字号之间转换

  •  26
  • devios1  · 技术社区  · 15 年前

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

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

    我问这个问题的原因是我想建立一个字体大小菜单,其中“标准”字体大小是9、10、12、14、16、18、24、36、48,但是我很确定如果我使用这些实际值,它们会非常不合适。

    2 回复  |  直到 15 年前
        1
  •  37
  •   Community Mohan Dere    9 年前

    WPF使用像素作为它的默认单位 font size . 之间的映射 points (可能你所说的“标准”字号的意思是)像素是:1pt=(96/72)px

    这给了我们一个简单的转换函数:

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

    this question 更多细节。

        2
  •  21
  •   toadflakz    14 年前

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