雖然我明白,這是爲時已晚,以幫助這個問題筆者,我要離開這個幫助這個問題的未來觀衆。
在這個答案的信息來自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