C #Windows.Forms.WebBrowser缩放
我的Windows窗体应用程序中有一个WebBrowser控件,想要更改我正在加载的HTML页面的“缩放级别”(在我的案例中是Bing地图)。
我希望在’Document’属性级别找到这样做的方法,但是没有可以使用的缩放或高度/宽度/大小属性(在浏览器级别,但我不想调整控件本身的大小) 。
附上我想做的照片。 有什么想法吗? 谢谢。
浏览器缩放问题
吉米基本上是对的。 但我会继续为您提供完整的代码/解释。
您想要向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链接
- OLECMDID
- OLECMDEXECOPT
- ShDcVw.InternetExplorer
- ExecWB方法
- IE架构
- IE托管和重用
- 与非托管代码互操作
- COM Interop架构
- COM Interop简介(VB)
- 将类型库导入为程序集
- COM到.Net数据类型
不幸的是,许多COM组件都是针对C ++开发人员而不是C#编写的,因为COM是围绕二进制兼容性的C ++范例。 因此在C#中,我们可以与最初用C ++编写的这些COM对象互操作。
您必须记住的另一个关于COM的技巧是每次添加新function时,它都会被添加到新的界面中。 EG IHTMLDocument2 IHTMLDocument3 , IHTMLDocument4等。因此,您需要知道实际上要将COM对象转换为哪个接口。