【问题标题】:Font Awesome icons do not show in UWP appUWP 应用中不显示 Font Awesome 图标
【发布时间】:2019-12-19 04:38:15
【问题描述】:

我最近尝试将 Font Awesome 5 中的图标添加到我正在处理的 UWP 项目中。在未能获得我想在应用程序中显示的图标后,我尝试通过让图标显示在一个简单的测试应用程序中来简化事情,但仍然没有成功。我创建测试应用所做的只是:

  • 在 Visual Studio 中,创建一个新的 Windows 通用空白应用程序。
  • 添加了 Font Awesome OTF 字体文件。

    Assets
        Fonts
            Font Awesome 5 Free-Solid-900.otf
    
  • 修改MainPage.xaml(按照Microsoft提供的说明)如下:

    <Grid>
        <FontIcon FontFamily="Assets/Fonts/Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free Solid" FontWeight="Black" Glyph="&#xF193;" />
    </Grid>
    

当我运行测试应用程序时,我看到的图标应该是一个方框。根据icon's page,我尝试使用的solid 版本是字体的免费版本,并且我已正确设置字体粗细以匹配字体系列的配置。

我尝试过的其他事情:

  • 字体系列的不同路径:
    • Font Awesome 5 Free Solid
    • /Assets/Fonts/Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free Solid
    • ms-appx:///Assets/Fonts/Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free Solid
  • UWP 项目配置的不同最低版本。
  • Visual Studio 的不同版本。我将 Visual Studio 2017 用于我的(真实)应用程序,因为它具有某些遗留要求。也无法在 Visual Studio 2019 中使用此字体。
  • 不同的字体字符。我尝试了 Font Awesome 提供的备用辅助功能符号,根据其 information page,它位于 Font Awesome 5 Brands-Regular-400.otf 字体文件中。是的,对于这种情况,我确实将字体粗细重置为 Normal (400)。
  • 不同的控件。尝试使用具有相同设置(字体系列、字体粗细、文本而不是字形等)的 TextBlock 而不是 FontIcon

没有任何效果;我从未见过任何我尝试使用的 Font Awesome 图标出现在我的应用程序中,每次都显示方形框。还有什么我没试过的吗?

【问题讨论】:

    标签: font-awesome uwp-xaml font-awesome-5


    【解决方案1】:

    您可能使用了错误的字体名称。

    Font Awesome 5 Free-Solid-900.otf它的真实字体名称不是Font Awesome 5 Free Solid,而是Font Awesome 5 Free,请使用以下代码:

    FontFamily="/Assets/Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free"
    

    另外,请确保你的字体文件Build Action(右键文件,选择Properties)是Content,这样可以保证你的字体文件会被添加到包中正确。

    最好的问候。

    【讨论】:

    • 这似乎已经解决了!似乎让我失望的是,在 XAML 设计器中,当我从下拉列表(在属性工具窗口的文本部分中)选择字体系列时,它会将字体系列属性设置为“Font Awesome 5 Free坚硬的”。此外,如果我在字体预览器应用程序中打开字体 OTF 文件(来自资源管理器),它会在顶部清楚地说明“字体名称:Font Awesome 5 Free Solid”。字体有多个名称吗?
    • 在我的真实应用程序中使用它之前遇到的另一个问题:我的 UI 层位于一个单独的类库项目中,这也是我放置所有视觉资源(包括字体)的地方。在字体出现在 UI 中之前,我必须将它们移动到主应用程序(入口点)项目中。我在 UI 类库中已经拥有的图像仍然可以从那里正常加载。很奇怪。
    • 这确实是一个误导性的问题。当字体显示给人们时,它会显示一个易于阅读的名称,这可能不是字体的原始名称。虽然大部分字体的显示名称与原名相同,但FontAwesome使用了不同的名称,这可能是区分不同字体类型的一种选择。对于你最后一个问题,原因是在构建应用的时候,你的资源会打包在同一个目录下。
    猜你喜欢
    • 2022-01-18
    • 2020-01-08
    • 2013-05-10
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多