我有一个为 WPF 应用程序定义样式和一些控件的程序集。在此程序集中,我有一个 ResourceDictionary,它指定程序集中其他控件和样式使用的“默认字体”。
<FontFamily x:Key="DefaultFontFamily">Segoe UI</FontFamily>
<sys:Double x:Key="DefaultFontSize">15</sys:Double>
我想做的是将 DefaultFontFamily 更改为与程序集链接(而不是嵌入)的自定义字体。
我在项目中创建了一个“资源”文件夹,并将自定义字体复制到其中。我已将字体的“构建操作”设置为“内容”,并将“复制到输出目录”设置为“如果较新则复制”。
该项目是包含另一个使用程序集中样式的项目的解决方案的一部分,因此在构建解决方案时,会按预期复制字体。但我似乎无法指定正确的文件夹来引用字体。
什么有效:
<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>
这里的“Project”是引用样式程序集的启动(可执行)项目的名称。
什么不起作用:
<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>
我还尝试将字体的内容设置为“资源”和“嵌入资源”,并尝试了以下操作:
<FontFamily x:Key="DefaultFontFamily">pack://application:,,,/Resources/Lobster.ttf#Lobster</FontFamily>
这也不起作用。 documentation说我应该能够使用:
A string specifying a folder containing the font, along with a font family name. The folder and font family name are delimited by a # character. The folder reference may be absolute, or relative. For example, "Custom Fonts\#My Custom Font".
我做错了什么?
最佳答案
输入文件字体参数,例如“资源”和“如果较新则复制”
关于c# - 来自程序集的 WPF 自定义 FontFamily?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29640679/