FontAwesome没有在WebView中加载

时间:2014-09-28 22:53:21

标签: c# html windows-store-apps font-awesome

我在Windows应用商店应用中使用Popline,但我可以获取图标的唯一方法是链接到文件的bootstrap CDN版本。当我尝试引用我的本地文件副本时,它不起作用。

这是我的fontAwesome.css路径

<link rel="stylesheet" type="text/css" href="ms-appx-web:///Assets/HTML/css/font-awesome.css">

我知道这是正确的,因为如果我编辑该文件并添加

* { border: 1px solid red; } 

在顶部,我的文档中的所有内容都有一个红色边框。问题似乎与字体文件本身有关。所有都导入到项目中,内容设置为“如果更新则复制”

我尝试编辑fontAwesome.css,以便字体文件路径前面有ms-appx-web:///Assets/HTML/。当这不起作用时,我尝试将该块取出并直接放入我的文档中,如下所示:

<style type="text/css" media="screen">
    @font-face {
      font-family: 'FontAwesome';
      src: url('ms-appx-web:///Assets/HTML/fonts/fontawesome-webfont.eot?v=4.2.0');
      src: url('ms-appx-web:///Assets/HTML/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('ms-appx-web:///Assets/HTML/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('ms-appx-web:///Assets/HTML/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('ms-appx-web:///Assets/HTML/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
      font-weight: normal;
      font-style: normal;
    }
</style>

谁能看到我做错了什么?

更新

请注意我使用NavigateToString加载我的HTML。这是绝对必要的,并且无法绕过它,因此解决方案必须适用于NavigateToString

1 个答案:

答案 0 :(得分:2)

经过大量的反复试验后,我终于找到了如何做到这一点。如果您使用Source属性将HTML放入WebView,那么有几种解决方案可行,但如果您使用NavigateToString

,这些解决方案都不起作用

来自Matt Small's blog的这个。

@font-face {
    font-family: 'FontAwesome';
    src: url(data:application/x-font-woff;charset=utf-8;base64,<BASE64 STRING OF fontawesome-webfont.woff>) format('woff'), 
        url('ms-appx-web:///fontawesome-webfont.ttf?v=4.2.0') format('truetype');
    font-weight: normal;
    font-style: normal;
}

您需要将此代码放入HTML文件的头部。如果在单独的css文件中,这将不起作用。

您可以使用this page转换fontawesome-webfont.woff文件。如果该链接不起作用,那里有许多其他页面也会这样做。