加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在WPF中,如何在后面的代码中引用资源库中的字体?

发布时间:2020-12-15 06:26:34 所属栏目:百科 来源:网络整理
导读:我有一个应用程序使用单独的库程序集资源(但不是一个没有代码的仅资源组件),我想在库中包含自定义字体. 如果将.otf文件作为资源添加到执行程序集(而不是资源库项目)的项目中,我可以获取字体(这是一个打开类型字体),并将属性设置为“构建操作” =’资源’并复
我有一个应用程序使用单独的库程序集资源(但不是一个没有代码的仅资源组件),我想在库中包含自定义字体.

如果将.otf文件作为资源添加到执行程序集(而不是资源库项目)的项目中,我可以获取字体(这是一个打开类型字体),并将属性设置为“构建操作” =’资源’并复制到输出=’不要复制’,通过使用以下代码:

FontFamily font = new FontFamily(new Uri("pack://application:,/"),"./Resources/#CustomFont")); // Resources is a subfolder

然而,当我尝试将字体添加到资源库项目时,字体不会加载.我尝试使用以下代码来加载它(也注意:我没有太多的包URI的经验):

FontFamily font = new FontFamily(new Uri("pack://application:,/MyLibrary"),"./Resources/#CustomFont")); 
                      // there is a Resources subfolder in my library as well
                      // not sure about whether I need the .

图书馆可以为其他资源(例如图像)工作.

我也尝试了一些其他排列的URI,没有成功(它也不抛出异常,只是显示与默认字体,不知道这是否是一个单独的问题).

我从Packaging Fonts with Applications开始在MSDN上工作,这里有一个创建一个字体资源库的例子,但没有使用代码的例子(我被迫使用后面的代码).

关于我需要做什么的任何想法?我跟踪吗?

解决方法

我在我的应用程序中工作(从代码隐藏的另一个程序集加载字体).对于像这样的字体URI:
pack://application:,/MyAssembly.Name;component/Resources/Fonts/#Swis721 Md BT

我的工作方式(痛苦的尝试和错误,如果我记得正确)是:

new FontFamily(
    new Uri("pack://application:,/MyAssembly.Name;component/Resources/Fonts/"),"./#Swis721 Md BT"
)

希望有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读