繁体   English   中英

在c#中更改WebBrowser控件的显示字体?

[英]Changing display font of WebBrowser control in c#?

我正在尝试更改WebBrowser控件的显示字体。

我试过了

doc.execCommand("FontName", false, "Arial");

但它似乎适用于选定的文本。

我想要与IE中设置字体完全相同的效果 - > Internet选项 - >常规 - >外观 - >字体。

提前致谢。

Byoungjo

--------更新-------------

就像Mitchell指出的那样,做与ExeWB在C#.Net中做同样的工作是我们的目标。

此外,更改注册表有点过度工作,如果存在可能需要更简单的解决方案。 否则,我会对这个FR说不。

好吧,从这看起来你需要使用本微软文章中概述的execWB命令。

更新

但是进一步查看文档,我没有看到您当前在.NET浏览器控件中使用的execWB或execCommand方法作为选项。

因此,您可能需要使用实际的IE设置,这很可能在注册表中。

实际上,您可以调用ExecWB方法,您只需要间接执行此操作。 我有以下代码用于上下缩放(使用C#4.0使它更容易):

    private const int OLECMDID_ZOOM = 63;
    private const int OLECMDEXECOPT_DONTPROMPTUSER = 2;

    private void SetZoom(int zoom)
    {
        dynamic obj = webBrowser1.ActiveXInstance;

        obj.ExecWB(OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, zoom, IntPtr.Zero);
    }

由于该设置在HKEY_CURRENT_USER / Software / Microsoft / Internet Explorer下,因此您应该能够通过在webbrowser站点上实现IDocHostUIHandler2 :: GetOverrideKeyPath来覆盖此设置。 因为Windows Forms使其IDocHostUIHandler实现内部,所以我认为您不能在WebBrowserSite上实现IDocHostUIHandler2。 我想你需要从头开始,例如像http://www.codeproject.com/KB/miscctrl/csEXWB.aspx这样的另一种可能性是覆盖你的IDocHostUIHandler :: GetHostInfo实现中的默认css。

如果您不关心删除选择,这可能有效:

web.Document.ExecCommand("SelectAll", false, "null");
web.Document.ExecCommand("FontName", false, "Arial"); // or any desired font
web.Document.ExecCommand("Unselect", false, "null");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM