[英]Removing border from WebBrowser control
我有一個 WebBrowser 控件坐在一個 Form 上,它周圍有一個令人討厭的 2px 內嵌邊框。 這導致我的內容在右側和底部被 4 px 剪裁,我不知道如何擺脫它。 控件本身沒有任何 BorderStyle 屬性——如何刪除邊框?
請參閱屏幕截圖中的紅色區域:
讓它停下來!http://img229.imageshack.us/img229/8342/badbadwebbrowser.gif
我希望 WebBrowser 看起來像藍色區域——也就是說,填充表單並與表單的邊緣齊平。
IE 將其繪制為 body 標簽上默認樣式的一部分。 在 body 元素上設置border:0px
,它就會消失。
值得慶幸的是,這將在 IE9 中消失。
WebBrowser 控件從控件類繼承顯示樣式。 如果你想控制控件的邊框樣式,你可以使用這樣的代碼,例如在 Form.Designer.cs 中:
using System;
using System.ComponentModel;
using System.Windows.Forms;
public class wbExt : System.Windows.Forms.WebBrowser
{
private BorderStyle _borderStyle;
[
Category("Appearance"),
Description("The border style")
]
public BorderStyle BorderStyle
{
get
{
return _borderStyle;
}
set
{
_borderStyle = value;
this.RecreateHandle();
Invalidate();
}
}
protected override CreateParams CreateParams
{
get
{
const int WS_BORDER = 0x00800000;
const int WS_EX_STATICEDGE = 0x00020000;
CreateParams cp = base.CreateParams;
switch (_borderStyle)
{
case BorderStyle.FixedSingle:
cp.Style |= WS_BORDER;
break;
case BorderStyle.Fixed3D:
cp.ExStyle |= WS_EX_STATICEDGE;
break;
}
return cp;
}
}
public wbExt()
{
}
}
現在您可以在 Form 類中更改生成的代碼。
private wbExt webBrowser1;
並在表單的 InitializeComponent 中重寫 webBrowser 項的創建,如下所示:
this.webBrowser1 = new WindowsFormsApplication1.wbExt();
所以,現在
webBrowser1.BorderStyle = BorderStyle.None;
將從 webBrowser 控件中刪除任何邊框。
我通過添加border:none;
解決了同樣的問題border:none;
將 style 屬性添加到html元素中。
<html style="border:none;">
首先,我嘗試將它添加到body元素中,但沒有成功,但它適用於根html元素。
在 Windows XP 上用於 WebBrowser 對象的 IE 版本 - 我認為版本 6 - 默認情況下將根 html 元素解釋為具有邊框。 如果您可以直接控制 WebBrowser 中顯示的網頁,則可以將樣式屬性直接添加到頁面的 HTML 源中 - 就像我所做的那樣 - 如果沒有,應該有一種方法可以通過編程方式編輯 WebBrowser 中的 HTML在您的應用程序方面。
我無法重現您所說的外觀。 我在 Form1.Designer.cs 中的代碼是:
this.webBrowser1.Location = new System.Drawing.Point(0, 0);
this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
this.webBrowser1.Name = "webBrowser1";
this.webBrowser1.ScrollBarsEnabled = false;
this.webBrowser1.Size = new System.Drawing.Size(141, 125);
this.webBrowser1.TabIndex = 0;
this.webBrowser1.Uri = ....
並且 webcontrol 顯示為沒有邊框......我使用的是 VS 2008 SP1/Windows 7。
也許您應該嘗試將控件添加到容器中,例如面板。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.