0

将字体嵌入到 Windows 手机应用程序非常容易,但我找不到在 WebBrowser 控件中使用我的字体的方法,即显示静态 html 文件。有什么办法吗?

我正在使用下面的代码来显示我的 html 文件:

        Uri uri = new Uri(AppResources.red_termsOfUse_URI, UriKind.Relative);
        Stream stream = Application.GetResourceStream(uri).Stream;
        using (StreamReader reader = new StreamReader(stream, new System.Text.UnicodeEncoding()))
        {
            string htmlDocument = reader.ReadToEnd();
            this.webBrowser.NavigateToString(htmlDocument);
        }
4

2 回答 2

2

webBrowser 控件将使用页面的 css(或样式元素)中定义的字体显示页面。(它不会使用嵌入式字体)

您可以使用 Javascript 在运行时设置字体,或者您可以在 HTML 文件本身中定义所需的字体(如果文件在您的控制之下)。

要了解有关在 WP7 WebBrowser 控件中注入 JavaScript 的更多信息,请阅读

编辑:
如果您有权访问,css那么您也可以尝试使用嵌入字体(与我们在任何 HTML 页面中所做的相同)。

(Not tested)
@font-face {
    font-family: your_font;
    src: local(your_font), url('fonts/bttf.ttf') format('opentype');
}

请参阅此内容以了解如何与 Asset 一起显示本地 Html 页面。我希望这是有道理的,我现在无法测试它。

于 2012-09-04T13:28:32.243 回答
1

我不得不做类似的事情。我的一位朋友使用 CSS 和 Data Url Scheme 找到了部分建议的解决方案。然后经过一番斗争,我得到了它的工作。

就我而言,我使用 NavigateToString(而不是 Navigate to a Url),但我认为通过一些技巧它可能会起作用

WebBrowser 中的自定义字体示例

因为我发现这很棘手,所以我创建了一个包含一些代码示例的博客文章:

这是我的博客文章: http ://hmadrigal.wordpress.com/2014/03/17/how-embed-fonts-in-windows-phone-8-using-a-webbrowser-control/

这是我的代码示例: https ://github.com/hmadrigal/playground-dotnet/tree/master/MsWinPhone.EmbedFont

干杯,香草

于 2014-03-17T21:03:45.510 回答