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


    这几天使用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>
    

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

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

    本来想,不起作用就不起作用吧,可以让用户自己安装一下需要的字体。将程序交给同事时,发现在win7上不能运行,由于是远程,没有进行查看具体原因,就将代码改成了使用.net framework版本的程序。创建了一个项目,把core中的程序文件拷贝到新项目中,并运行了程序,结果很是吃惊,字体引用竟然起作用了。
    下图为使用.net framework版本运行程序的截图:

    具体是什么原因导致的,目前还不是很清楚,已经在github上面提交了Issues,想要了解具体信息请查阅:
    in App.xmal add FontFamily can't usable

    在微信群发了一条消息后,得到群友:沙漠尽头的狼(dotnet9.com) 的帮助,经其调试后,发现是可以的。
    根据其发给我的源码,我在本地也进行了调试,发现是对字体属性的设置问题导致的。

    正确的设置如上图所示,生成操作为:资源
    而我设置下面的内容:复制到输出目录:如果较新则复制

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

  • 相关阅读:
    线程正常终止pthread_exit,pthread_join,pthread_kill,pthread_cancel,sigwait,sigaddset
    线程的创建,pthread_create,pthread_self,pthread_once
    线程和进程的关系
    改变进程的优先级,nice,getpriority,setpriority
    setuid和setgid
    等待进程结束wait,waitpid
    执行新程序以及环境变量
    进程退出exit、_exit、abort
    VBA 判断单元格是否为公式,可用于数组
    ADODB 调用存储过程
  • 原文地址:https://www.cnblogs.com/sesametech-netcore/p/12418687.html
Copyright © 2020-2023  润新知