C# 来自本地资源的字体系列资源

C# 来自本地资源的字体系列资源,c#,wpf,xaml,fonts,C#,Wpf,Xaml,Fonts,我正在尝试访问项目中资源文件夹中的字体。目前,我已声明字体系列资源: <FontFamily x:Key="FontFamilyNormal">Resources/#Bank Gothic Medium</FontFamily> Resources/#银行哥特式媒体 当我引用此资源时,无法显示字体。当我删除“Resources/#”并只使用Bank Gothic Medium时,它可以工作,但我相信它是从我的操作系统访问字体,而不是从我希望访问字体的Resources

我正在尝试访问项目中资源文件夹中的字体。目前,我已声明字体系列资源:

<FontFamily x:Key="FontFamilyNormal">Resources/#Bank Gothic Medium</FontFamily>
Resources/#银行哥特式媒体

当我引用此资源时,无法显示字体。当我删除“Resources/#”并只使用Bank Gothic Medium时,它可以工作,但我相信它是从我的操作系统访问字体,而不是从我希望访问字体的Resources文件夹访问字体。是否有方法使用FontFamily资源从“我的资源”文件夹中访问字体文件?

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

  • 字体必须是TrueType字体(.ttf)
  • 字体必须经过许可才能以这种方式使用
  • .ttf文件的生成操作必须是“资源”
我建议在创建资源之前直接在
TextBlock
上测试字体

首先要尝试的是字体的绝对路径,如下所示:

<TextBlock FontFamily="file:///d:/MyProjects/Project/Resources#Bank Gothic Medium">Test</TextBlock>
<TextBlock FontFamily="pack://application:,,,/Fonts/#Bank Gothic Medium">Test</TextBlock>
注意:在最后一个示例中,我们使用了字体所在的实际目录。

看起来你的关系很好

如上所述,.ttf文件的生成操作必须是“资源”

在ResourceDirectory中,指定

<ResourceDictionary>
<FontFamily x:Key="FontKey">pack://application:,,,/FontsFolder/#FontFamilyName</FontFamily>
</ResourceDictionary>

pack://application:,,,/FontsFolder/#FontFamilyName
然后可以将其用作静态或动态资源

<TextBlock FontFamily="{DynamicResource FontKey}" Text="Some Text" />


我尝试使用包URI,但没有成功:
pack://application:,,,/Resources/Bank Gothic Medium.ttf
Nate,在您的Finally语句中,唯一显示的是“Test”。这是故意的吗?
<TextBlock FontFamily="{DynamicResource FontKey}" Text="Some Text" />