WPF应用程序中的自定义字体仅适用于设计模式,但不适用于构建

时间:2013-07-18 10:05:53

标签: wpf fonts

最近我在WPF应用程序中使用自定义字体时遇到问题。我使用Packaging Fonts with Applications中描述的方法在项目中添加了自定义字体。它在设计模式下工作正常,但是当我运行应用程序时,它不起作用,似乎使用默认字体。找出原因:

  • 我从互联网上下载了一个免费字体,并使用相同的方式来引用它。它在两种情况下都运作良好。

  • 我创建了一个新的WPF项目,并在这个新项目中添加了自定义字体。它意外地奏效了。我比较了新项目和我的问题项目,区别在于我在旧项目中使用.Net 3.5,在新项目中使用.Net 4.0。在我将旧项目更改为使用.Net 4.0之后,问题得以解决。但是,我的旧项目中不允许使用.Net 4.0,所以我想找到一个基于.Net 3.5的解决方案。

  • 顺便说一下。我试图将字体文件构建为内容和资源。此外,我试图使用绝对和相关的路径。它没用。

期待您的帮助。非常感谢。

此致 雨蓬

1 个答案:

答案 0 :(得分:0)

我发现名称包含Medium / Light或其他字体关键字的字体系列会出现上述问题。当我使用代码加载字体文件时,加载的字体系列名称与字体文件中显示的不同。所以我假设在加载时会自动删除字体名称中的关键字。

为了解决这个问题,我重新编码了名称(由代码加载)并用它们来引用我的自定义字体系列。它在构建中运行良好,但现在在设计模式下工作。注释/取消注释将有助于切换。

我认为最简单的方法是通过删除关键字来更改字体系列名称,但我没有权限,我没有尝试过。