【问题标题】:capturing and cancelling the new window opening event in a wpf web browser在 wpf Web 浏览器中捕获和取消新窗口打开事件
【发布时间】:2018-12-02 02:04:24
【问题描述】:

谁能告诉我如何在 C# 中取消在 wpf 网络浏览器中打开新窗口的事件?我不想在单击链接时在我的应用程序顶部显示 Internet Explorer 窗口。

浏览器定义如下:

  <WebBrowser Canvas.Left="311.522" Canvas.Top="106.949" Height="500.805"
                  Width="945.998" ScrollViewer.VerticalScrollBarVisibility="Hidden" 
                        ScrollViewer.CanContentScroll="False"
                        ScrollViewer.HorizontalScrollBarVisibility="Hidden"
                  HorizontalAlignment="Left" Name="wbNavigator" VerticalAlignment="Bottom" ClipToBounds="True"   Navigated="wbNavigator_Navigated" />

问候,

【问题讨论】:

  • 您能在 XAML 中显示您的超链接声明吗?
  • 超链接将作为谷歌地图的一部分出现。我已编辑问题以适应 webbrowser 标记。

标签: c# wpf


【解决方案1】:

好的,滚动到this page 的底部。其中一位用户提供了一种解决方案,该解决方案涉及从 WPF WebBrowser 控件获取 IWebBrowser2 接口。此接口提供对 NewWindow 事件的访问,该事件可用于取消打开新的浏览器窗口。这对我来说似乎是一个有效的解决方案。

祝你好运,如果您需要更多帮助,请告诉我。

【讨论】:

  • 供参考:网址已更改,现在可以在这里找到:msdn.microsoft.com/en-us/library/…
  • 你能在这里发布解决方案吗?仅仅提供一个链接是不好的,没有直接的帮助,也不符合stackoverflow的规则。
【解决方案2】:

将此添加到您的命名空间对我有用,我不知道为什么...我找到了它here 但我只使用了这部分代码,没有 MyWebBrowser.LoadCompleted 和 COM 引用的东西

[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("6d5140c1-7436-11ce-8034-00aa006009fa")]
internal interface IServiceProvider
{
    [return: MarshalAs(UnmanagedType.IUnknown)]
    object QueryService(ref Guid guidService, ref Guid riid);
}

如果有人可以解释为什么这段代码可以完成这项工作,请...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多