大家都知道的,在wpf中引用WebBrowser是一個有獨立句柄的窗口。
這樣的話,wpf的UI就無法對齊進行覆蓋,這裏有一個折中的解決方案,在需要覆蓋WebBrowser時,對其進行截圖並隱藏控件,把他所佔用的位置用一個Image替代,並將圖片設置到Image上面,隱藏覆蓋UI時,再把Image隱藏,WebBrowser顯示出來就行了!
本文中需要的截圖 我已經在前面發過文章
http://blog.csdn.net/aiqinxuancai/article/details/50541824
這裏是xaml,我是用在wpf中,但是使用的是Forms中的控件,具體請找相關文章查看 關鍵字”WindowsFormsIntegration”
<Grid Background="#00000000" HorizontalAlignment="Right" Width="615" Margin="-3,0,0,-3">
<Image x:Name="imageResource" Margin="2,0,-2,0" />
<WindowsFormsHost x:Name="webResourceHost" Margin="2,0,-2,0">
<web:ExtendedWebBrowser x:Name="webResource" BeforeNavigate="webResource_BeforeNavigate" BeforeNewWindow="webResource_BeforeNewWindow" DocumentCompleted="webResource_DocumentCompleted" />
</WindowsFormsHost>
</Grid>
代碼中使用
//隱藏並用Image替代WebBrowser
imageResource.Source = WebScreenshot.BrowserSnapShot(webResource);
webResourceHost.Visibility = Visibility.Hidden;
//------------------------------
//恢復WebBrowser
imageResource.Source = null;
webResourceHost.Visibility = Visibility.Visible;