在WPF(core版本)中引用外部字体不可用问题说明

19 篇文章 1 订阅

这几天使用WPF写软件,想引用外部字体,于是下载了字体文件:
在这里插入图片描述
然后在App.xaml中添加了如下代码:

<FontFamily x:Key="Digital-7 Mono"> 
    pack://application:,,,/IVFTempMonitor;component/Fonts/Digital7Mono-B1g5.ttf#Digital-7 Mono
</FontFamily>

字体存放目录:
在这里插入图片描述

MainWindow.xaml中使用上面定义的字体,代码如下:

<Border Grid.Row="1"Grid.Column="0"Margin="3"Background="{StaticResource BootstrapCyan}">
    <TextBlock
        HorizontalAlignment="Center" 
        VerticalAlignment="Center"
        FontFamily="{StaticResource 'Digital-7 Mono'}"
        FontSize="40"Foreground="White" 
       Text="{Binding One}" />        
</Border>

在运行的时候,发现字体设置不起作用,运行结果如下:

红框中的内容全部使用了上面定义的字体

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PxRaAiIg-1583370471555)(在WPF(core版本)中引用外部字体不可用问题说明_files/e104f75e-04f2-4f26-93fb-3753713553b2.png)]

本来想,不起作用就不起作用吧,可以让用户自己安装一下需要的字体。将程序交给同事时,发现在win7上不能运行,由于是远程,没有进行查看具体原因,就将代码改成了使用.net framework版本的程序。创建了一个项目,把core中的程序文件拷贝到新项目中,并运行了程序,结果很是吃惊,字体引用竟然起作用了。
下图为使用.net framework版本运行程序的截图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r7WIrX52-1583370471562)(在WPF(core版本)中引用外部字体不可用问题说明_files/e0484635-3ab7-40a6-86f4-4f81f028f567.png)]
具体是什么原因导致的,目前还不是很清楚,已经在github上面提交了Issues,想要了解具体信息请查阅:
in App.xmal add FontFamily can’t usable

在微信群发了一条消息后,得到群友:沙漠尽头的狼(dotnet9.com) 的帮助,经其调试后,发现是可以的。
根据其发给我的源码,我在本地也进行了调试,发现是对字体属性的设置问题导致的。
在这里插入图片描述
正确的设置如上图所示,生成操作为:资源
而我设置下面的内容:复制到输出目录:如果较新则复制

在此感谢:沙漠尽头的狼(dotnet9.com)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值