C# WPF浏览器:如何等待页面加载

C# WPF浏览器:如何等待页面加载,c#,wpf,webbrowser-control,C#,Wpf,Webbrowser Control,我的WPF浏览器有问题。我想加载一个网页。 等待它完全加载,然后放入少量搜索输入,然后检索结果并将其放入excel 无法执行此操作,主程序将在加载pagecomplete_事件之前加载并完成执行。情况是: 加载组件提供程序网站 转到搜索选项并搜索我正在读取的EXCEL文件的零件号 将零件号放入搜索栏,然后单击搜索 下载详情 对许多零件重复上述步骤 我已经用WinForms完成了这项工作,它运行得很好。问题是调用DOEVENTS。它有时会使我的程序挂起,尤其是在一个大列表上运行时。所以我想在WPF

我的WPF浏览器有问题。我想加载一个网页。 等待它完全加载,然后放入少量搜索输入,然后检索结果并将其放入excel

无法执行此操作,主程序将在加载pagecomplete_事件之前加载并完成执行。情况是:

  • 加载组件提供程序网站
  • 转到搜索选项并搜索我正在读取的EXCEL文件的零件号
  • 将零件号放入搜索栏,然后单击搜索
  • 下载详情
  • 对许多零件重复上述步骤
  • 我已经用WinForms完成了这项工作,它运行得很好。问题是调用
    DOEVENTS
    。它有时会使我的程序挂起,尤其是在一个大列表上运行时。所以我想在WPF里做

    我已经把
    Load\u Complete
    事件放进去了,但是正如我提到的,它是在主程序完成之后发生的


    我搜索并获得了以下链接:。但它似乎没有帮助-WPF中似乎没有
    System.Windows.Deployment
    -我得到了红色的扭曲下划线。我也找不到其他的解决办法。这让我困扰了一段时间,终于找到了解决办法。现在我对vb.net还相当陌生,所以这可能不是最好的方法,但它确实有效。这是在vb.net中,您可能很容易将其转换为c

    这将创建一个触发WebpageLoaded sub的事件

    我用它来等待页面加载,然后登录到我的帐户。 我是这样做的

    Private Sub WebpageLoaded()
        If webbrowser1.Url.ToString = "http://www.myWebsite.net/admin/" Then
            webbrowser1.Document.GetElementById("username").ScrollIntoView(True)
            webbrowser1.Document.GetElementById("username").SetAttribute("value", "myUsername")
            webbrowser1.Document.GetElementById("password").SetAttribute("value", "myPassword")
        End If
    End Sub
    

    我真的希望这有帮助。您可能不需要滚动查看,我只是用它来查看最终运行的进度。

    System.Windows.Deployment
    似乎是Silverlight特有的:谢谢您的更正。我似乎不明白您的目标。您想让主UI线程等待任务完成,还是不想在后台线程中加载页面而不阻止wpf主UI线程?我的目标是--在wpf浏览器中加载页面。--放置搜索详细信息--从页面中提取详细信息--用新的搜索详细信息重新加载页面并再次提取--重复,直到没有更多搜索列表。。。。执行此搜索时,页面应用程序必须等待页面加载并提取。应用程序并没有等待WPF浏览器完成页面加载并触发页面加载事件(我有提取代码)
    Private Sub WebpageLoaded()
        If webbrowser1.Url.ToString = "http://www.myWebsite.net/admin/" Then
            webbrowser1.Document.GetElementById("username").ScrollIntoView(True)
            webbrowser1.Document.GetElementById("username").SetAttribute("value", "myUsername")
            webbrowser1.Document.GetElementById("password").SetAttribute("value", "myPassword")
        End If
    End Sub