解决WebBrowser背景不能透明的问题

WPF中使用WebBrowser控件时,WebBrowser是一个单独绘制句柄,除了显示层级更高外,还不支持透明。

在我前面的文章中,解决了不规则窗口下,将WebBrowser显示出来。

https://www.cnblogs.com/zhaotianff/p/18408345

但是在页面未加载出来之前,能看到短暂的白屏情况。

一开始我查阅了各种资料,尝试寻找设置WebBrowser透明的办法,以失败告终。

 

后面想了一个中转的办法,解决方案如下:

 

1、设置WebBrowser的宽高为一个非常小的数值,例如0.1

此时WebBrowser能正常工作,但是处于一个几乎看不见的状态,就达到了透明的效果。

1  <WebBrowser x:Name="webBrowser" Width="1" Height="1" LoadCompleted="webBrowser_LoadCompleted"></WebBrowser>

 

 

2、在WebBrowser的LoadComplete事件处理函数中,将WebBrowser的大小恢复

LoadComplete代表网页已经加载完成了,此时可以正常显示WebBrowser控件了。

1 private void webBrowser_LoadCompleted(object sender, NavigationEventArgs e)
2 {
3     var browser = sender as WebBrowser;
4     browser.Width = 527;
5     browser.Height = 501;
6 }

 

示例代码

posted @   zhaotianff  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
历史上的今天:
2022-10-17 使用Powershell/cmd提取msi安装包中的文件
点击右上角即可分享
微信分享提示