WPF WebBrowser控件 - 没有LinkClicked事件

时间:2010-07-15 13:01:35

标签: wpf event-handling webbrowser-control

有人知道如何在WPF WebBrowser控件中捕获链接上的点击吗?

在页面导航之前,我需要在点击链接时获取链接目标。

任何投入都受到高度赞赏!

我在Code中的解决方案正如针对简单链接所建议的那样,这将通过以下代码实现:

private void webBrowser1_Navigating(object sender, NavigatingCancelEventArgs e)
{
    //prefix must be lowercase (ssrs conforms to web-standards and makes things lowercase)
            string myPrefix = "http://myPrefix";

            //check if target starts with the prefix
            if (e.Uri.AbsoluteUri.StartsWith(myPrefix))
            {
                //cancel Navigation
                e.Cancel = true;
            }
}

谢谢你让我解决这个问题。

3 个答案:

答案 0 :(得分:3)

您可以将事件处理程序附加到Navigating事件。提取链接,在导航页面之前执行逻辑。

干杯。

答案 1 :(得分:1)

我不确定,但可能是MessageHook事件可以帮助你

http://msdn.microsoft.com/en-us/library/system.windows.interop.hwndhost.messagehook.aspx

答案 2 :(得分:0)

在WebBrowser导航事件处理程序中控制您的点击次数。您可以在Xal或构造函数中创建它,并使用以下方法:

    private void webBrowser_Navigating(object sender, NavigatingCancelEventArgs e)
    {
        // The WebBrowser control is checking the Uri 
        if (e.Uri.ToString() != "Place your url string here") //ex: "http://stackoverflow.com"
        {
            // Uri is not the same so it cancels the process
            e.Cancel = true;
        }
    }