Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# webbrowser中的内容在Windows窗体应用程序中自动缩放时出现问题_C#_.net_Winforms_Webbrowser Control_Scale - Fatal编程技术网

C# webbrowser中的内容在Windows窗体应用程序中自动缩放时出现问题

C# webbrowser中的内容在Windows窗体应用程序中自动缩放时出现问题,c#,.net,winforms,webbrowser-control,scale,C#,.net,Winforms,Webbrowser Control,Scale,我正在尝试创建一个程序,它可以滚动浏览位于我计算机上的文件并显示这些文件。到目前为止,这对我来说是可行的,但我得到的是实际大小的内容,所以webbrowser添加了一个滚动条(显然)。我希望内容能够自动缩放,以便在不必滚动的情况下适合webbrowser 代码: webbrowser中的大型图像,仅为图像的五分之一: 因此,基本上,这个大图像需要自动缩放,以便与浏览器完全匹配 谢谢大家。作为一个选项,您可以处理WebBrowser控件的DocumentCompleted事件,并根据大小设置图像

我正在尝试创建一个程序,它可以滚动浏览位于我计算机上的文件并显示这些文件。到目前为止,这对我来说是可行的,但我得到的是实际大小的内容,所以webbrowser添加了一个滚动条(显然)。我希望内容能够自动缩放,以便在不必滚动的情况下适合webbrowser

代码:

webbrowser中的大型图像,仅为图像的五分之一:

因此,基本上,这个大图像需要自动缩放,以便与浏览器完全匹配


谢谢大家。

作为一个选项,您可以处理
WebBrowser
控件的
DocumentCompleted
事件,并根据大小设置图像样式

例如:

1) 创建Windows窗体项目 2) 在设计模式下打开Form1并在其上放置
WebBrowser
控件。 3) 双击表单标题栏以处理表单的
加载
事件,并使用以下代码:

private void Form1_Load(object sender, EventArgs e)
{
    this.webBrowser1.Navigate("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png");
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document.Body.SetAttribute("scroll", "no");
    var img = webBrowser1.Document.GetElementsByTagName("img")
                 .Cast<HtmlElement>().FirstOrDefault();
    var w = img.ClientRectangle.Width;
    var h = img.ClientRectangle.Height;
    img.Style = string.Format("{0}: 100%", w > h ? "Width" : "Height");
}
4) 双击
WebBrowser
控件以处理其
DocumentCompleted
事件,并使用以下代码:

private void Form1_Load(object sender, EventArgs e)
{
    this.webBrowser1.Navigate("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png");
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document.Body.SetAttribute("scroll", "no");
    var img = webBrowser1.Document.GetElementsByTagName("img")
                 .Cast<HtmlElement>().FirstOrDefault();
    var w = img.ClientRectangle.Width;
    var h = img.ClientRectangle.Height;
    img.Style = string.Format("{0}: 100%", w > h ? "Width" : "Height");
}

这样,当图像比浏览器大时,它将适合浏览器。而且,当浏览器足够大时,它也不会调整大小。

我自己测试了它,它对我有效。运行上述代码时有什么问题?将问题更新为您的意思,这样好吗?因为上面的代码没有给我相同的输出。请不要更新问题的方式,使答案看起来像是胡说八道。我回滚了更新。如果您阅读了答案并测试了解决方案,并且有任何问题,请告诉我该问题:)我只是用您给我的代码编辑了该问题,目的是向您展示该代码,但它对我还不起作用。如果我将documentCompleted事件与您回答的代码一起使用,并将“webBrowser1”修改为“web”(我的webbrowser名称),则它不起作用。我明白您的意思,但在这种情况下,最好不要触及原始问题,只在答案下添加一些注释。有时,如果需要,您可以在问题中添加更新部分。想象一下,如果你收到5个不同的答案,如果你想在问题中添加一些更新,原始问题会发生什么。没有人愿意阅读这样一个问题的答案,它对未来的读者永远不会有用。因此,让我们保持问题和答案的整洁:)