虽然我明白,这是为时已晚,以帮助这个问题笔者,我要离开这个帮助这个问题的未来观众。
在这个答案的信息来自Packaging Fonts with Applications页面上MSDN:
添加字体作为内容项
您可以添加字体到您的应用程序是独立于项目的内容项目应用程序的汇编文件。这意味着内容项目不会作为资源嵌入到程序集中。以下项目文件示例显示如何定义内容项目。
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Other project build settings ... -->
<ItemGroup>
<Content Include="Peric.ttf" />
<Content Include="Pericl.ttf" />
</ItemGroup>
</Project>
为了确保应用程序可以在运行时使用的字体,字体必须在应用程序的部署目录访问。应用程序项目文件中的元素允许您在构建过程中自动将字体复制到应用程序部署目录。以下项目文件示例显示如何将字体复制到部署目录。
<ItemGroup>
<Content Include="Peric.ttf">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Pericl.ttf">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
添加字体作为资源项
您可以字体添加到您的应用程序嵌入应用程序的组件文件中项目资源的项目。为资源使用单独的子目录有助于组织应用程序的项目文件。以下项目文件示例显示如何在单独的子目录中将字体定义为资源项目。
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Other project build settings ... -->
<ItemGroup>
<Resource Include="resources\Peric.ttf" />
<Resource Include="resources\Pericl.ttf" />
</ItemGroup>
</Project>
当您添加字体作为资源到应用程序,请确保您设置的元素,而不是在你的应用程序的项目文件中的元素。构建操作的元素不受支持。
以下标记示例显示如何引用应用程序的字体资源。
<TextBlock FontFamily="./resources/#Pericles Light">
Aegean Sea
</TextBlock>
请按照从码和其他有用的信息引用字体资源上面的链接了解详情。
“有一天我编译了(没有改变)” - 你的SCC中有什么比较说的? –
@Mitch小麦完全没有改变,显然这是WPF中的一个错误。 – Carlo
我不明白downvotes,因为它是一个真实(而且非常烦人)的问题,有时候stackoverflow社区可能会非常讨厌。 – Carlo