我的Windows窗体应用程序中有一个WebBrowser控件,想要更改"缩放级别"我正在加载的HTML页面(在我的案例中是Bing地图)。
我希望在'文件'中找到办法。属性级别,但没有可以使用的缩放或高度/宽度/大小属性(在浏览器级别,但我不想调整控件本身的大小)。
附上我想做的照片。有什么想法吗?感谢。
答案 0 :(得分:3)
您希望向Microsoft Internet Controls添加COM引用,以便您可以访问ShDocVw。
using System;
using System.Windows.Forms;
namespace winforms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.Navigate(new Uri("http://www.google.com"));
webBrowser1.DocumentCompleted += WebBrowser1_DocumentCompleted;
}
private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var browser = webBrowser1.ActiveXInstance as SHDocVw.InternetExplorer;
browser.ExecWB(SHDocVw.OLECMDID.OLECMDID_OPTICAL_ZOOM, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT,200 ,IntPtr.Zero );
}
}
}
200表示缩放级别.EG 200%缩放。如果进行50%缩放,则会缩小。换句话说,小于100的值表示缩小,大于100的值会放大。可能的值范围为10-1000。
Documnetation Links
不幸的是,许多COM组件都是针对C ++开发人员而不是C#编写的,因为COM是围绕二进制兼容性的C ++范例。因此在C#中,我们可以与最初用C ++编写的这些COM对象互操作。
您必须记住的另一个关于COM的技巧是,每次添加新功能时,它都会被添加到新界面中。例如。 IHTMLDocument2 IHTMLDocument3,IHTMLDocument4等等。因此,您需要知道实际上要将COM对象转换为哪个接口。