我正在使用網絡瀏覽器從網絡中自動加載圖像,但VB.Net窗體應用程序中存在白色背景,圖像未填充窗體上的整個導航器對象。如何在VB.Net中爲WebBrowser設置透明背景顏色?
如何在應用程序中爲Web瀏覽器對象設置透明背景?
感謝,
C.
我正在使用網絡瀏覽器從網絡中自動加載圖像,但VB.Net窗體應用程序中存在白色背景,圖像未填充窗體上的整個導航器對象。如何在VB.Net中爲WebBrowser設置透明背景顏色?
如何在應用程序中爲Web瀏覽器對象設置透明背景?
感謝,
C.
設置窗體的透明度鍵爲白色。 您選擇的透明度鍵的顏色是透明的。整個表單上的任何內容都會變成透明的。由於瀏覽器的背景是白色,透明的白色按鍵會使其透明,您可以使用Windows Aero Glass DWM效果獲得透明的透明效果,但只能在Windows Vista之後使用,對於以前版本的Windows,您將擁有手動繪製它是一項長期的工作。最簡單和最適合你的最快的就是透明度鍵設置爲白色:)
Me.TransparencyKey = Color.White
如果你想使用Aero Glass的DWM,使用下面的代碼:
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Runtime.InteropServices
Private mExtendedFrameMargins As MARGINS
Protected Overrides Sub _
OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
'use either one
e.Graphics.SmoothingMode = SmoothingMode.HighQuality
End Sub
Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
If IsGlassEnabled() Then
'You should paint the extended frame black for proper composition, but I'm painting it white as you need it
e.Graphics.FillRectangle(Brushes.White, 0, 0, Me.ClientRectangle.Width, mExtendedFrameMargins.cyTopHeight)
End If
End Sub
Private Function IsGlassEnabled() As Boolean
If Environment.OSVersion.Version.Major < 6 Then
Return False
End If
Dim isGlassSupported As Boolean = False
DwmIsCompositionEnabled(isGlassSupported)
Return isGlassSupported
End Function
<DllImport("dwmapi.dll")> _
Private Shared Function DwmIsCompositionEnabled(<MarshalAs(UnmanagedType.Bool)> ByRef pfEnabled As Boolean) As Integer
End Function
<DllImport("dwmapi.dll")> _
Private Shared Function DwmExtendFrameIntoClientArea(ByVal hwnd As IntPtr, ByRef pMarInset As MARGINS) As Integer
End Function
<StructLayout(LayoutKind.Sequential)> _
Private Structure MARGINS
Public cxLeftWidth As Integer
Public cxRightWidth As Integer
Public cyTopHeight As Integer
Public cyBottomHeight As Integer
End Structure
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If IsGlassEnabled() Then
mExtendedFrameMargins = New MARGINS
mExtendedFrameMargins.cyTopHeight = Me.Height 'type height here, this is going to be a number (integer)
DwmExtendFrameIntoClientArea(Me.Handle, mExtendedFrameMargins)
End If
End Sub
我用這個代碼在一個應用程序,我創建
5個單詞的答案?!?!自WebBrowser控件以來窗體上的屬性沒有該屬性?或者你是什麼意思? –
那麼,你選擇透明度的顏色是透明的。整個表單上的任何內容都會變成透明的。所以瀏覽器的背景是白色的,所以透明的白色按鍵會使它透明,你可以使用Windows Aero Glass dwm效果來獲得透明的效果,但它只能在Windows Vista之後使用,對於以前的Windows版本,你會必須手動繪製它有點長。對你而言,最簡單也是最快捷的事情就是透明鍵:) –
我知道(以及我認爲你的意思)...更重要的是,我暗示你應該通過複製/粘貼你的評論到你的答案... 5個單詞的答案沒有得到upvotes,包含詳細/格式化/例子和適當的一級裁判獲得upvoted的長答案。 –
你只使用webbrowser的圖像? – K3rnel31
是的。但是它們總是從網頁加載(隨着圖像的變化),然後它會在網頁上顯示第一個(也是唯一的)圖像。 – Masutatsu