WPF WebBrowser OnTitleChanged事件

时间:2013-04-29 09:00:18

标签: c# wpf browser

我在C#app中使用System.Windows.Controls.Webbrowser类。 我想知道文档标题是否有变化。

因此我会听LoadComplete事件并获得标题

    public void webBrowser_LoadCompleted(object sender, NavigationEventArgs e)
    {
        dynamic doc = browser.Document;
        setTitle(doc.Title);
    }

现在的问题是,标题可能会在加载过程中发生变化。在这种情况下,LoadCompleted事件不会触发。 下一个问题是。我有一个html应用程序,在其中导航应用程序中的JavaScript函数。如果使用这些javascript链接,事件也不会触发。

我正在寻找像OnTitleChange from CHtmlView这样的事件(c ++) 是否有可能解决我的问题?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

WPF webbrowser不支持。

您可以使用Windows窗体互操作来显示Windows窗体webbrowser控件,然后订阅DocumentTitleChanged事件。

答案 1 :(得分:0)

这是我的工作代码:

        System.Windows.Forms.WebBrowser browser = new System.Windows.Forms.WebBrowser();
        browser.Navigate(URL);
        browser.DocumentTitleChanged += new EventHandler(browser_DocumentTitleChanged);

        WindowsFormsHost winFormsHost = new WindowsFormsHost();
        winFormsHost.Child = browser;
        AddChild(winFormsHost);

public void browser_DocumentTitleChanged(object sender, EventArgs e)
{
  setTitle(browser.DocumentTitle);
}