WPF WebBrowser Control - нет события LinkClicked - PullRequest
3 голосов
/ 15 июля 2010

Кто-нибудь знает, как перехватывать ссылки в ссылках в элементе управления WPF WebBrowser?

Мне нужно получить целевой объект ссылки при переходе по ссылке до перехода по странице.

Любые входные данные высоко ценятся!

Мое решение в коде Как было предложено для простых ссылок, этого можно достичь с помощью следующего кода:

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 ]

3 голосов
/ 15 июля 2010

Вы можете прикрепить обработчик события к событию Navigating.Извлеките ссылку, выполните свою логику до навигации по странице.

Приветствия.

1 голос
/ 15 июля 2010

Я не уверен в этом, но может быть событие MessageHook поможет вам

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

0 голосов
/ 28 марта 2016

Контролируйте свои клики в обработчике событий WebBrowser Navigating. Вы можете создать это в 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;
        }
    }
...