我想在我的 Windows Store App 的 WebView 中使用一种字体。
我指的是这个页面。 http://blogs.msdn.com/b/wsdevsol/archive/2012/10/23/about-webview-and-embedded-fonts.aspx
此页面使用 WebView 的 Navigate 方法。但我想使用 NavigateToString 方法。将使用该字体的 HTML 字符串传递给 NavigateToString 方法,并希望显示该 HTML。以下示例 1 失败。
示例 1:
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
MyWebView.NavigateToString("<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta charset=\"utf-8\" /><style type=\"text/css\"> @font-face { font-family: \"ipafont\"; font-style: normal; font-weight: 400; src: url(ipaexm.woff);} .ipa { font-family: \"ipafont\"; font-size: xx-large; }</style></head><body><div class=\"ipa\">Hello, Good morning.</div></body></html>");
}
我试过改变
src:网址(ipaexm.woff);
至
src: url("ms-appx-web:///ipaexm.woff");
但我失败了。当然,我在 Windows Store 应用程序的根文件夹中包含了“ipaexm.woff”字体。
以下示例 2 成功。
示例 2:
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
string style = "@font-face { font-family: 'ipa'; src: url(data:application/x-font-woff;charset=utf-8;base64," + <BASE 64 ENCODED TEXT OF FONT GOES HERE)> + ") format('woff'), url('ipa__-webfont.ttf') format('truetype'); font-style: normal; font-weight: 400; }";
MyWebView.NavigateToString("<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta charset=\"utf-8\" /><style type=\"text/css\"> @font-face { font-family: 'ipafont'; src: url('ipa__-webfont.eot'); } " + style + " .ipa { font-family: \"ipafont\"; font-size: xx-large; }</style></head><body><div class=\"ipa\">Hello, Good morning.</div></body></html>");
}
我想使用一种示例1。我使用的字体约为 5MB,因此字体的 base 64 编码文本太长。有什么好的方法可以通过 NavigateToString 方法使用字体吗?