gpt4 book ai didi

WPF 不呈现 Windows OpenType 字体名称

转载 作者:行者123 更新时间:2023-12-04 08:10:21 28 4
gpt4 key购买 nike

我无法弄清楚如何确定如何在 WPF(.NET 4.5/VS2012/Windows 8)中正确呈现特定的 OpenType 字体。我的电脑上安装了一种字体,名为“DINPro-BlackItalic”。

文件名为: DINPro-BlackItalic.otf

Windows 报告字体名称为: DINPro-黑色斜体

Windows Font preview for DINPro-BlackItalic

在 WPF 中,我做了一些简单的事情,如下所示:

<TextBlock Text="This is a sample sentence in DINPro-BlackItalic"
FontFamily="DinPro-BlackItalic" FontSize="24" />

FontFamily="#DinPro-BlackItalic"
这不起作用(显然不是斜体)并且它回退到默认字体。我尝试了许多其他变体,它们适用于字体目录中的其他字体。

例如,Comic Sans 作品: FontFamily="Comic Sans MS" (惊人的...)

现在,这就是为什么我真的很困惑:如果我只是猜测另一种标点字体名称的方式,它会正确呈现!

这有效: FontFamily="Din Pro Black Italic"
总之,这是 WPF 中不同 FontFamily 设置的屏幕截图:
Several FontFamily settings in WPF

两个问题:

1)我应该如何猜测告诉 WPF 呈现这种字体的正确方法?它必须在某处注册一个规范名称,但它在文件名、文件属性或 Windows 解析文件后报告的字体名称中不可见。

2) 更糟糕的是,如果我试图在桌面应用程序和 Web 上呈现相同的字体,Windows 上的 Chrome 等浏览器 甚至 IE 期望“DINPro-BlackItalic”并且不会呈现名称的间隔版本。似乎 WPF 和 windows 浏览器使 互斥决定使用哪个字体名称来索引字体。对于任意字体,我该如何解决这个问题?

DINPro Font rendering in Chrome and IE

最佳答案

好的,所以我想我找到了解决方案..

<TextBlock FontFamily=”/Fonts/DINPro-BlackItalic.otf#Din Pro”/>

或者
<TextBlock FontFamily=”/Fonts/DINPro-BlackItalic.otf#Din Pro Black Italic”/>

没有尝试过你的代码,但这似乎对我有用..引用文件+字体名的路径

Opentype 文件具有它们共享的通用名称。这就是它变得棘手的地方,因为只有在您的 PC 上安装字体并在家族树中检查它时,您才能看到这个名称。就像您之前在问题中展示的那样:
FontFamily="Din Pro Black Italic"

这是我的经验,不是 100% 确定我是正确的,只是它对我有用:)

关于WPF 不呈现 Windows OpenType 字体名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255174/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com