2

这可能看起来是一个奇怪的问题,但我无法看到我在 WPF 应用程序中作为资源加载的自定义 true-type 字体,我想知道它是否与字体名称。

如其他地方所述(数百个示例之一),我已将字体添加到Fonts我的应用程序的文件夹中,并将其设置为Build Action= Resource。我可以TextBlock使用简单的FontFamily="Fonts\#My Font".

不幸的是,字体只在运行时出现,而不是在 XAML 设计器中(与大多数人的问题相反)。但是,正如这里所解释的,这个作者的字体也有类似的问题Open Sans,如果我像他那样在我的系统上安装字体,我可以在设计时看到它。

但我宁愿不强迫开发人员在他们的系统上安装字体。我注意到,像上面的作者一样,我没有这个问题,一些自定义字体的名称没有空格。所以我想知道这是否可能是 Visual Studio 中的一个错误(我正在使用 Community 2013)。有没有人能够让它与名称包含空格的字体一起使用?或者有没有人找到更令人满意的解决方法(例如,在没有类似于 Windows 短文件名的空格的情况下引用字体的方法)?

4

1 回答 1

1

我遇到了同样的问题。解决方案是去掉空格,尽管您不能只编辑文件名。我是这样做的:

  • 下载 FontForge - http://fontforge.github.io/en-US/
  • 打开字体文件
  • 转到元素 - >字体信息
  • 在那里寻找 xyz 名称,我的是 TTF 名称,因为它是 Wingdings
  • 编辑它们以删除空格,我很确定唯一重要的是“UniqueID”,但我都做了。
  • 转到文件-> 生成字体并将字体保存为正确的类型。
  • 重新添加文件并引用不带空格的字体

这是我可以让它工作的唯一方法,但它最终顺利工作。祝你好运。

于 2015-09-29T09:52:52.410 回答