WPF 以及同类型中字体文件的理解
本文使用的是阿里巴巴普惠字体
导入字体的方式
<FontFamily x:Key="Alibaba PuHuiTi">pack://application:,,,/AlibabaPuHuiTi;component/#Alibaba PuHuiTi</FontFamily>
目前使用.NET core Wpf ,是将字体文件放到一个库项目中,通过引用的方式导入到主项目中的。
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net6.0-windows</TargetFramework> <Nullable>enable</Nullable> <Platforms>x86</Platforms> <UseWPF>true</UseWPF> </PropertyGroup> <ItemGroup> <None Remove="Alibaba-PuHuiTi-Medium.ttf" /> <None Remove="Alibaba-PuHuiTi-Regular.ttf" /> </ItemGroup> <ItemGroup> <Resource Include="Alibaba-PuHuiTi-Medium.ttf"> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </Resource> <Resource Include="Alibaba-PuHuiTi-Regular.ttf"> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </Resource> </ItemGroup> </Project>
生成操作:属性+不复制
本文介绍一种现象,
当时用 某个字体文件时,如果你只导入 Alibaba-PuHuiTi-Regular.ttf,如果字体 设置FontWeight="Bold",
解析器找不到这个字体的时候,会用算法动态计算对应的宽度的字体。
比如下图
上方的问题时没有 导入 Alibaba-PuHuiTi-Bold 时,由代码解析器 自动 估算出的字重。
下面的字体截图时导入 Alibaba-PuHuiTi-Bold 之后,实际显示的 宽度,
由此可以得出,从网络中得到的字体文件,如果对美感要求比较高,那么还是需要导入完整的字体文件的,
如果仅仅只是显示一个效果,那么 仅仅导入 Regular 字重的字体即可。
下方是从网络中搜索到的介绍
------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:Dream.Machine (944095635)
网站:http://www.dmskin.com
博客:http://www.cnblogs.com/DMSkin
开源:https://github.com/944095635
关于作者:专注于 WPF开发、C# 开发。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明.
在文章页面位置给出原文连接,如有问题,可以通过944095635@qq.com 联系我,非常感谢。
网站:http://www.dmskin.com
博客:http://www.cnblogs.com/DMSkin
开源:https://github.com/944095635
关于作者:专注于 WPF开发、C# 开发。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明.
在文章页面位置给出原文连接,如有问题,可以通过944095635@qq.com 联系我,非常感谢。