作为一个选项,您可以处理DocumentCompleted
事件的WebBrowser
根据尺寸控制和设置图像的样式。
例如:
1)创建Windows窗体项目
2)在设计模式下打开Form1并拖放一个WebBrowser
对其进行控制。
3)双击表格标题栏进行处理Load
形式的事件并使用以下代码:
private void Form1_Load(object sender, EventArgs e)
{
this.webBrowser1.Navigate("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png");
}
4)双击WebBrowser
控制来处理它的DocumentCompleed
事件并使用以下代码:
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");
}
您将看到以下结果,而原始图像尺寸为 544x184:
Note 1
这只是您可以执行的操作的一个示例。您可以做出更明智的决定,例如检查图像尺寸是否小于浏览器尺寸,那么您不需要应用任何缩放。
注2 - (这是我的选择)
如果您设置WebBrowser
控制到支持显示现代内容 https://stackoverflow.com/a/38514446/3110834更好的图像样式是:
img.Style = "max-width:100%;max-height:100%";
这样,当图像大于浏览器时,图像将适合浏览器。当浏览器足够大时,它也不会调整大小。