我有一个C#应用程序,里面有一个WebBrowser,应用程序从论坛中提取被认为是图像的html链接,然后我告诉我的WebBrowser导航到图像链接以逐个显示图像。
问题是这些图像中的一些比我的WebBrowser对象的大小要大得多。我不想调整窗口的大小,我觉得它的大小是:)
我想让webbrowser页面调整大小,例如像firefox和chrome一样,当你打开一个图像链接并且你没有最大化它们时,它们只是让它变小以适合窗口?
提前致谢
解决方案:工作一个款待,Elerium(Top答案)提供了链接,只是将VB代码更改为C#
double origSizeWidth, origSizeHeight;
origSizeWidth =webBrowser1.Size.Width; //get the original size of browser
origSizeHeight = webBrowser1.Size.Height;
HtmlElement pic = webBrowser1.Document.Images[0]; //get your image
double origPicWidth, origPicHeight;
origPicWidth = double.Parse(pic.GetAttribute("WIDTH")); //save the image width
origPicHeight = double.Parse(pic.GetAttribute("HEIGHT"));//and height
double tempW, tempY, widthScale, heightScale;
double scale = 0;
if(origPicWidth > origSizeWidth){
widthScale = origSizeWidth / origPicWidth; //find out the scale factor for the width
heightScale = origSizeHeight / origPicHeight; //scale factor for height
scale = Math.Min(widthScale,heightScale);//determine which scale to use from the smallest
tempW = origPicWidth * scale; //multiply picture original width by the scale
tempY = origPicHeight * scale; // multiply original picture height by the scale
pic.SetAttribute("WIDTH", tempW.ToString()); // set your attributes
pic.SetAttribute("HEIGHT", tempY.ToString());
}