设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 系统 > 正文

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

发布时间:2021-01-07 01:11 所属栏目:52 来源:网络整理
导读:? ?两个WindowsFormHost叠加时,WindowsFormHost对于png的背景图不支持透明。如下图: Grid x:Name="GdMain" Image x:Name="ImgSky" Source="Sky.jpg" Stretch="Fill"/ !--加载Winform的WebBrowser-- WindowsFormsH

? ?两个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内容进行裁剪

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读