WPF应用中仅部分Font Awesome图标正常显示其余为矩形如何解决
问题根因
你代码中FontAwesomeSolid对应的字体文件引用错误,Solid字重的图标并未打包在Regular字重的字体文件中:
- 定义
FontAwesomeSolid时你使用的是Font Awesome 5 Free-Regular-400.otf,该文件仅包含Regular字重的图标 - Solid字重的图标对应的字体文件应为
Font Awesome 5 Free-Solid-900.otf,未正确引用该文件时,仅同时存在于Regular字重中的图标可正常显示,仅存在于Solid字重中的图标就会显示为矩形占位符。
你测试的两个图标中,在Regular、Solid字重中均有收录,所以显示正常;仅在Solid字重中收录,因此无法正常渲染。
修复方案
- 将
Font Awesome 5 Free-Solid-900.otf文件放入项目的Fonts目录,将其属性设置为Resource资源类型 - 修改
Window.Resources中FontAwesomeSolid的定义:
<FontFamily x:Key="FontAwesomeSolid">Fonts/Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free Solid</FontFamily>
- 重新编译运行即可解决多数图标无法显示的问题。
内容的提问来源于stack exchange,提问作者user1812615
相关产品推荐
相关产品推荐

