Visual Studio XAML 设计师可以处理带有空格的字体系列名称作为资源吗?

Can Visual Studio XAML designer handle font family names with spaces as a resource?

这似乎是一个奇怪的问题,但我无法看到我作为资源加载到我的 WPF 应用程序中的自定义 True-Type 字体,我想知道是否必须这样做在字体名称中使用 space。

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

来引用字体(例如,在 TextBlock 中)

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

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

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

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

这是我让它运行的唯一方法,但它最终运行得很顺利。祝你好运。