大家都知道的,在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;