本地资源的字体系列资源

时间:2016-05-04 22:01:17

标签: c# wpf xaml fonts

我试图访问项目资源文件夹中的字体。目前,我有一个声明的字体系列资源:

<FontFamily x:Key="FontFamilyNormal">Resources/#Bank Gothic Medium</FontFamily>

当我引用此资源时,这不能显示字体。当我删除,&#34;资源/#&#34;它只有Bank Gothic Medium,它可以工作,但我相信它可以从我的操作系统访问字体,而不是从我希望从中访问它的资源文件夹。有没有办法使用FontFamily资源从我的资源文件夹中访问字体文件?

1 个答案:

答案 0 :(得分:1)

将字体嵌入到应用程序中有规则,只有符合条件的字体才支持嵌入。

  • 字体必须是TrueType字体(.ttf)
  • 该字体必须获得许可才能以这种方式使用。
  • .ttf文件的构建操作必须是“资源”

我建议在创建资源之前直接在TextBlock上测试字体。

首先要尝试的是字体的绝对路径:

<TextBlock FontFamily="file:///d:/MyProjects/Project/Resources#Bank Gothic Medium">Test</TextBlock>

如果有效,那么我们可以尝试抛弃完整的路径:

<TextBlock FontFamily="./Resources/Resources#Bank Gothic Medium">Test</TextBlock>

注意:./resources/不是目录,而是特殊路径。您可以使用路径,但路径将相对于其使用的控件,并且没有一种很好的方法可以到达项目的根目录。

最后还有包网址,它应该在任何地方都能发挥最佳效果。它看起来像这样:

<TextBlock FontFamily="pack://application:,,,/Fonts/#Bank Gothic Medium">Test</TextBlock>

Note: In this last one we used the actual directory for where the font will be.

看起来你非常接近!