[英]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.