【问题标题】:WPF custom FontFamily from assembly?来自程序集的WPF自定义FontFamily?
【发布时间】:2015-06-20 20:24:31
【问题描述】:

我有一个为 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>

这里的“项目”是引用样式程序集的启动(可执行)项目的名称。

什么不起作用:

<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 说我应该可以使用:

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

我做错了什么?

【问题讨论】:

  • 怎么样 pack://application:,,,/[YourAssembly];component/Resources/Lobster.ttf#Lobster" 并且不要忘记插入 [YourAssembly] - 不确定是否可以诀窍

标签: c# .net wpf xaml fonts


【解决方案1】:

输入文件字体参数,如“资源”和“如果较新则复制”

【讨论】:

猜你喜欢
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
相关资源
最近更新 更多