【问题标题】:Overlay over WebBrowser control覆盖在 WebBrowser 控件上
【发布时间】:2023-03-03 10:24:02
【问题描述】:

我有一个 TabControl(使用 InfragisticTabControl),其中每个 TabItem 都包含一个 WebBrowser 控件,我可以在其中显示一个 URL,例如 www.google.com 或任何 xbap UI。

下面是 TabItem 代码:​​

<Grid>
    <WebBrowser x:Name="myBrowser"
            webHelper:WebBrowserHelper.BrowserSource="{Binding XBAP_URI}"
            Height="Auto"/>

    <Grid Name="MyOverlayGrid" Background="LightGray" Opacity="0.5" 
          Visibility="{Binding Path=IsEnabled, Converter={StaticResource BoolToVisible2}, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type igDock:ContentPane}}}">
        <TextBlock Text="User does not have permissions for this application" FontSize="24"/>
    </Grid>
</Grid>

我使用 snoop 验证是否正确填充了可见性绑定,但我没有在 myBrowser 控件上看到 MyOverlayGrid。我什至尝试为 MyOverlayGrid 更新 Panel.ZIndex,没有帮助。

唯一可行的是将 myBrowser 可见性设置为隐藏(我使用了 snoop),然后我可以看到 MyOverlayGrid。

谁能告诉我我做错了什么或遗漏了一些明显的东西?这适用于内容控件,但对于 WebBrowser 控件来说可能是不可能的,因为它在选项卡控件中启动了新的应用程序(InternetExplorer.exe 或 PresentationHost.exe)?

谢谢,

RDV

【问题讨论】:

标签: c# wpf webbrowser-control overlay


【解决方案1】:

谁能告诉我我做错了什么或遗漏了一些明显的东西?

我害怕后者。 WebBrowser 控件托管在单独的 HWND 中,始终绘制在 WPF 元素之上,如 MSDN 上的文档所述:https://msdn.microsoft.com/en-us/library/ms744952(v=vs.110).aspx

除了应用解决方法(例如将Grid 放入Popup 中)之外,您对此无能为力。

您可能需要考虑使用其他第三方WebBrowser 控件,例如Chromium

【讨论】:

  • 谢谢@mm8,我不知道空域问题。我正在使用弹出控件来解决这个问题。
猜你喜欢
  • 1970-01-01
  • 2013-04-18
  • 2010-09-29
  • 2010-12-04
  • 2014-10-15
  • 2011-10-13
  • 2023-03-10
  • 1970-01-01
  • 2013-12-30
相关资源
最近更新 更多