是否可以将WPF WebBrowser与其他UIElement重叠

本文关键字:其他 UIElement 重叠 WebBrowser WPF 是否 | 更新日期: 2023-09-27 18:23:59

我想在WPF WebBrowser上放一些UIElement(opacity=0),即通过这个放得太多的UIElement捕捉所有点击事件。

有可能做到吗?

此代码不起作用。。。

<Canvas Name="cnsMain">
  <WebBrowser x:Name="MainBrowser" Visibility="Visible" Panel.ZIndex="0" />
  <Canvas Panel.ZIndex="100" Opacity="0.01"></Canvas>
</Canvas>

谢谢!

是否可以将WPF WebBrowser与其他UIElement重叠

不,您不能使用最初随SDK一起提供的WPF WebBrowser。它总是在其他UIElement之上。

但我认为第三方控制是可能的。

有关详细信息,请参阅我之前提出的这个问题。

不,WPF Webbrowser只是WPF包装器中的标准浏览器控件。它不是本机WPF,因此不尊重WPF应用程序的ZOrder

这可以在.NET 4.5中完成。在渲染之前,它需要在WebBrowser控件上设置以下属性:

IsRedirected = true
CompositionMode = System.Windows.Interop.CompositionMode.Full

这将启用hwnd重定向,允许用于渲染的普通顶级hwnd重定向到WPF曲面,该曲面可以很好地处理树中的其他元素

编辑:在发布之前,此功能似乎是从.NET 4.5中删除的。如果我给了任何人虚假的希望,我深表歉意。感谢@JoeDaley指出我的错误。