Windows手机WebBrowser控件嵌入字体

时间:2012-09-04 13:11:32

标签: .net windows-phone-7 webbrowser-control

将字体嵌入到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);
        }

2 个答案:

答案 0 :(得分:2)

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

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

要详细了解在WP7 WebBrowser控件中注入JavaScript ,请阅读this

修改
如果您有权访问css,那么您也可以尝试使用嵌入式字体(与在任何HTML页面中一样)。

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

请参阅此内容以了解How to Display Local Html page along with Asset。 我希望这是有道理的,我现在无法测试它。

答案 1 :(得分:1)

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

在我的情况下,我使用的是NavigateToString(而不是导航到Url),但我认为有些技巧可以使用

Sample of custom font in 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

干杯, 草本植物