繁体   English   中英

缩放WPF-WebBrowser-Control内容

[英]Zoom WPF-WebBrowser-Control Content

我想在wpf WebBrowser控件中显示一个网站。 但是内容太大了,因此有滚动条,如您在这里看到的:

在此处输入图片说明

我想在此窗口中显示整个网站,而不调整其大小。 我想在页面内部进行缩放,使其看起来像这样:

在此处输入图片说明

我想防止使用JavaScript进行此操作。 这里显示的WPF方式WPF WebBrowser-如何缩放内容? 也没有为我工作。 它总是说mshtml.IHTMLDocument2为null。

我还想防止使用WindowsForms这样做。 我希望有一种“仅XAML”的方式来解决此问题。

这是我的代码:

<Window x:Class="BrowserApp.MainWindow"

 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <WebBrowser Source="https://www.google.de/"></WebBrowser>
        </Grid>
    </Window>

谢谢!

编辑

这是我在Webbrowser1_Navigated-Method中的代码,其中发生HRESULT:0x80020101-Error。

private void Webbrowser1_Navigated(object sender, NavigationEventArgs e)
{
    double Zoom = 0.5;
    mshtml.IHTMLDocument2 doc = Webbrowser1.Document as mshtml.IHTMLDocument2;
    doc.parentWindow.execScript("document.body.style.zoom=" + Zoom.ToString().Replace(",", ".") + ";");
}

它总是说mshtml.IHTMLDocument2为null。

这与Web浏览器控件的线程模型有关。 您在XAML或代码中设置的所有导航操作都将在您离开构造函数之后完成。 这意味着您必须在导航事件触发后或计时器触发后执行缩放代码。

这就是我要做的。

            public MainWindow()
            {
                InitializeComponent();
                Webbrowser1.Navigate("http://www.google.com"); //won't complete until you leave this code block
                Webbrowser1.Navigated += Webbrowser1_Navigated;

            }

            private void Webbrowser1_Navigated(object sender, NavigationEventArgs e)
            {
               //do your zoom code here
            }
}

在您的XAML中,您可以引用该事件,但是您仍然必须执行缩放部分。

   <WebBrowser Navigated="Webbrowser1_Navigated" Name="Webbrowser1"/>

当然,其他stackoverflow帖子的代码也可以缩放。

webBrowser.LoadCompleted += Web_LoadCompleted;

private void Web_LoadCompleted (object sender, NavigationEventArgs e)
{
    // Place your code here
}

暂无
暂无

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

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