C# 来自部件的WPF自定义FontFamily?

C# 来自部件的WPF自定义FontFamily?,c#,.net,wpf,xaml,fonts,C#,.net,Wpf,Xaml,Fonts,我有一个为WPF应用程序定义样式和一些控件的程序集。在这个程序集中,我有一个ResourceDictionary,它指定了一个“默认字体”,供程序集中的其他控件和样式使用 <FontFamily x:Key="DefaultFontFamily">Segoe UI</FontFamily> <sys:Double x:Key="DefaultFontSize">15</sys:Double> Segoe用户界面 15 我想做的是将Default

我有一个为WPF应用程序定义样式和一些控件的程序集。在这个程序集中,我有一个ResourceDictionary,它指定了一个“默认字体”,供程序集中的其他控件和样式使用

<FontFamily x:Key="DefaultFontFamily">Segoe UI</FontFamily>
<sys:Double x:Key="DefaultFontSize">15</sys:Double>
Segoe用户界面 15 我想做的是将DefaultFontFamily更改为与程序集链接(而不是嵌入)的自定义字体

<FontFamily x:Key="DefaultFontFamily">Segoe UI</FontFamily>
<sys:Double x:Key="DefaultFontSize">15</sys:Double>
我已经在项目中创建了一个“资源”文件夹,并在那里复制了自定义字体。我已经将字体的“构建操作”设置为“内容”,将“复制到输出目录”设置为“如果更新,则复制”

该项目是包含另一个项目的解决方案的一部分,该项目使用程序集中的样式,因此在生成解决方案时,字体将按预期复制。我似乎无法指定正确的文件夹来引用字体

什么有效:

<FontFamily x:Key="DefaultFontFamily">C:\code\Solution\Project\bin\Debug\Resources\Lobster-Regular.ttf#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">file:///c:/code/Solution/Project/bin/Debug/Resources/Lobster-Regular.ttf#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">\Resources\Lobster-Regular.ttf#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">.\Resources\Lobster-Regular.ttf#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">/Resources/#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">./Resources/#Lobster</FontFamily>
C:\code\Solution\Project\bin\Debug\Resources\Lobster Regular.ttf#Lobster
file:///c:/code/Solution/Project/bin/Debug/Resources/Lobster-普通的,ttf龙虾
此处“Project”是引用样式程序集的启动(可执行)项目的名称

<FontFamily x:Key="DefaultFontFamily">Segoe UI</FontFamily>
<sys:Double x:Key="DefaultFontSize">15</sys:Double>
什么不起作用:

<FontFamily x:Key="DefaultFontFamily">C:\code\Solution\Project\bin\Debug\Resources\Lobster-Regular.ttf#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">file:///c:/code/Solution/Project/bin/Debug/Resources/Lobster-Regular.ttf#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">\Resources\Lobster-Regular.ttf#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">.\Resources\Lobster-Regular.ttf#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">/Resources/#Lobster</FontFamily>
<FontFamily x:Key="DefaultFontFamily">./Resources/#Lobster</FontFamily>
\Resources\Lobster Regular.ttf#Lobster
.\Resources\Lobster Regular.ttf#Lobster
/资源/龙虾
/资源/#龙虾
我还尝试将字体内容设置为“资源”和“嵌入资源”,并尝试了以下操作:

<FontFamily x:Key="DefaultFontFamily">pack://application:,,,/Resources/Lobster.ttf#Lobster</FontFamily>
pack://application:,,,/Resources/Lobster.ttf#Lobster
这也没用。上面说我应该能够使用:

一个字符串,指定包含字体的文件夹以及字体系列名称。文件夹和字体系列名称由#字符分隔。文件夹引用可以是绝对的,也可以是相对的。例如,“自定义字体\#我的自定义字体”


我做错了什么?

将您的文件字体参数如“资源”和“更新时复制”

怎么样pack://application:,,/[你的集会];component/Resources/Lobster.ttf#Lobster“别忘了插入[yoursassembly]-不确定它是否能完成任务谢谢!你刚刚回答了我的问题