加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

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>

WPF应用中对WindowsFormHost内容进行裁剪

?

可以看到右上角的png边框分明(实时上我放的是一张三个角均为透明的圆形png)。 若对右上角的Winform Panel进行裁剪。

WPF应用中对WindowsFormHost内容进行裁剪

?

裁剪完后,下面一层的WindowsFormHost也被裁了,露出了我用Image加载的星空底图,如下图:

WPF应用中对WindowsFormHost内容进行裁剪

解决方案:将要加载的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加载的是腾讯企业邮箱主页。

WPF应用中对WindowsFormHost内容进行裁剪

?

源代码下载链接:微信扫描下方二维码文章末尾获取链接。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

WPF应用中对WindowsFormHost内容进行裁剪

?

WPF应用中对WindowsFormHost内容进行裁剪

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读