在wpf Web浏览器中捕获和取消新窗口打开事件

时间:2011-08-08 06:43:05

标签: c# wpf

任何人都可以告诉我如何取消在C#中使用wpf webbrowser打开新窗口的事件吗?我不希望在点击链接时在我的应用程序顶部显示Internet Explorer窗口。

webbrowser的定义如下:

  <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" />

此致

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

将此添加到您的命名空间对我有用,我不知道为什么...我发现了它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);
}

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