c# - 如何从 wpf 中的 Web 浏览器控件获取文档的标题

标签 c# wpf wpf-controls webbrowser-control tabcontrol

我在 TabControl 中创建了一个 Web 浏览器控件。我想将 TabItem 的标题设置为 Web 浏览器的文档标题。 我在 WebBrowser 的 Navigated Event 中使用了以下代码

dynamic doc = tabBrowser.Document; //tabBrowser is the name of WebBrowser Control
tab.Header = doc.Title;            //tab is the name of the Tab Item

但是这段代码并没有按预期工作。 header 仅针对少数站点进行更改。 如何将 tabItem 的标题设置为文档的标题值?

这是导航功能:

    public void tabBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) 
    { 
       urlTextBox.Text = tabBrowser.Source.ToString(); 
       myHistory.addToHistory(tabBrowser.Source.ToString());
       BookMarks.addBookmark(tabBrowser.Source.ToString()); 
       dynamic doc = tabBrowser.Document; 
       tab.Header = doc.Title; 
    }

最佳答案

在我的代码中,我使用了 WebBrowser 的 LoadCompleted 事件。可能在您的导航事件文档中尚未准备好,并且文档标题不正确或为空。

private void MyWebBrowser_LoadCompleted_1(object sender, NavigationEventArgs e)
{
    try
    {
        MyTextBox.Text = MyWebBrowser.Source.ToString();
        Title_doc.Content = ((dynamic)MyWebBrowser.Document).Title;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

关于c# - 如何从 wpf 中的 Web 浏览器控件获取文档的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15819397/

相关文章:

c# - 如何使用 ASP.NET Core 从 DbContext 中的 JWT 获取用户名?

c# - Page 有一个对 Page Model 的引用,PageModel 有一个返回页面的引用。内存会被释放吗?

c# - 子窗口定位

c# - 如何在 .NET 中构建消息系统?

c# - UserControl 和 Canvas - 矢量动画

c# - 装箱/拆箱 - 只有值类型? Ref.types - 类型转换?

c# - c#中没有类名的新关键字

找不到 WPF 资源

wpf - 将 String[] 转换为 Expando 以在 WPF 中绑定(bind) DataGrid

wpf - 如何创建圆形 slider WPF