WPF应用中对WindowsFormHost内容进行裁剪
发布时间:2021-01-08 02:43:30 所属栏目:系统 来源:网络整理
导读:副标题#e# 问题1:? ? WPF中在使用WindowsFormsHost调用WinFrom控件时,若在WindowsFormsHost上层添加了WPF控件,该控件不会显示出来。 Grid WindowsFormsHost Background="White" Winfrm:WebBrowser x:Name="WinFrmWebBrowser"/ /WindowsFormsHost !--运行
? ?两个WindowsFormHost叠加时,WindowsFormHost对于png的背景图不支持透明。如下图: <Grid x:Name="GdMain"> <Image x:Name="ImgSky" Source="Sky.jpg" Stretch="Fill"/> <!--加载Winform的WebBrowser--> <WindowsFormsHost Background="White"> <Winfrm:WebBrowser x:Name="WinFrmWebBrowser"/> </WindowsFormsHost> <WindowsFormsHost Width="182" Height="182" HorizontalAlignment="Right" x:Name="WinfrmHostOverlayer" VerticalAlignment="Top" Background="Transparent"> <Winfrm:Panel x:Name="WinfrmPanel"/> </WindowsFormsHost> </Grid> 可以看到右上角的png边框分明(实时上我放的是一张三个角均为透明的圆形png)。 若对右上角的Winform Panel进行裁剪。 裁剪完后,下面一层的WindowsFormHost也被裁了,露出了我用Image加载的星空底图,如下图: 解决方案:将要加载的Winform控件放在一起,可以是在同一个Winform Panel下面,这时在进行裁剪就不会有问题。如 <Grid x:Name="GdMain"> <Image x:Name="ImgSky" Source="Sky.jpg" Stretch="Fill"/> <WindowsFormsHost HorizontalAlignment="Right" x:Name="WinfrmHostOverlayer" VerticalAlignment="Top" Background="Transparent"> <Winfrm:Panel x:Name="WinfrmPanel"> <!--<Winfrm:WebBrowser x:Name="WinFrmWebBrowser"/>--> <!--<Winfrm:Panel x:Name="WinFrmSubPanel"/>--> </Winfrm:Panel> </WindowsFormsHost> </Grid> ?上文中WebBrowser我都加载的是www.baidu.com.? 为了凸显效果,下图所示Demo加载的是腾讯企业邮箱主页。 (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |