WPF WebBrowser 控件放大/缩小支持吗? [英] WPF WebBrowser control zoom in/out support?
本文介绍了WPF WebBrowser 控件放大/缩小支持吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
对于 WPF WebBrowser 控件,有没有办法复制 Internet Explorer 的缩放功能?
For a WPF WebBrowser control, is there a way to duplicate Internet Explorer's zoom functionality?
换句话说,Internet Explorer 具有菜单视图">缩放">75%",它以 75% 的比例呈现网页.有没有办法让嵌入在 WPF 应用程序中的 Web 浏览器控件执行相同的操作?
In other words, Internet Explorer has the menu View > Zoom > 75%, which renders the web page at 75% scale. Is there a way to make a web browser control, which is embedded in a WPF app, do the same thing?
我看过这个帖子:WPF WebBrowser - 如何缩放内容?
但它似乎只缩放页面而不是页面内容.
But it only seems to scale the page and not the page content.
推荐答案
public partial class TestWindow: UserControl
{
public TestWindow()
{
InitializeComponent();
browser.LoadCompleted += new LoadCompletedEventHandler(browser_LoadCompleted);
}
private void browser_LoadCompleted(object sender, NavigationEventArgs e)
{
try
{
FieldInfo webBrowserInfo = browser.GetType().GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
object comWebBrowser = null;
object zoomPercent = 120;
if (webBrowserInfo != null)
comWebBrowser = webBrowserInfo.GetValue(browser);
if (comWebBrowser != null)
{
InternetExplorer ie = (InternetExplorer)comWebBrowser;
ie.ExecWB(SHDocVw.OLECMDID.OLECMDID_OPTICAL_ZOOM, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref zoomPercent, IntPtr.Zero);
}
}
catch (Exception ex)
{
}
}
public void SetBrowser(string url)
{
browser.Navigate(url,null,null,null);
}
internal void Destroy()
{
try
{
if (browser.Parent != null)
{
((Grid)browser.Parent).Children.Remove(browser);
browser.Navigate("about:blank");
browser.Dispose();
browser = null;
}
}
catch { }
}
}
这篇关于WPF WebBrowser 控件放大/缩小支持吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文