【发布时间】:2014-05-03 06:57:05
【问题描述】:
我环顾四周,但很难找到实现以下内容的方法:
我有一个带有 Web 浏览器控件的 WPF 应用程序。我有一个文件保存在磁盘上,我正在使用 Navigate 方法加载文件。
我有一个附加到 Web 浏览器 LoadCompleted 事件的事件处理程序,这很有效。
但是,页面可能需要很长时间才能加载。我想显示一个进度条(最好是在状态栏中,但新窗口也可以),但无论如何我都找不到。
我尝试过的每件事(后台工作人员,线程)都说调用线程必须是STA,并且似乎进度条作为UI元素只能在UI线程上更新-被阻止页面呈现期间的 Web 浏览器控件。
或者,有没有办法在新线程中运行 Web 浏览器控件?我猜不是因为这也是一个 UI 元素。
任何帮助将不胜感激。
附言进度条是一个简单的不确定条;我没有尝试更新状态 - 只是在加载页面时显示。
【问题讨论】:
-
不是数据的下载问题; Web 浏览器控件会阻止线程,直到它下载数据并显示它。作为 html,这可能会导致其他项目,例如图像和 javascript/css。
标签: c# wpf multithreading progress-bar