确定WP WebBrowser加载的距离

时间:2013-12-31 07:23:11

标签: c# windows-phone-7 windows-phone-8 windows-phone webbrowser-control

我正在为Windows Phone上的Internet Explorer Mobile开发另一种浏览器。我的问题是,我还想要一个显示页面加载的进度条,就像Internet Explorer移动设备一样,但我找不到WebBrowser控件上的任何属性或事件,告诉我页面加载了多远。有什么我可以做的吗?

PS。这个项目主要用于Windows Phone 8,所以可以使用一些WP 8独家api,但WP7支持也不错。

2 个答案:

答案 0 :(得分:2)

加载栏就像确定在请求开始时下载的kb的总数一样简单,然后用当前下载的kb(以百分比)更新进度条。

幸运的是,你可以添加这样的进度条:

   <ProgressBar Foreground="Green" x:Name="ProgBar" Visibility="Collapsed" IsIndeterminate="True" Height="10" HorizontalAlignment="Left" Margin="10,66,0,0" VerticalAlignment="Bottom" Width="460" />

然后,您需要修改main page.cs以合并事件:

 void Browser_Navigating(object sender,     NavigatingEventArgs e)
      {
          ProgBar.Visibility = Visibility.Visible;
      }
 void Browser_Navigated(object sender,     System.Windows.Navigation.NavigationEventArgs e)
      {
          ProgBar.Visibility = Visibility.Collapsed;
      }

您可以阅读这一切是如何运作的ON THIS LINK。 (此链接显示的教程将向您解释如何完成此进度条)

您还可以使用Windows phone 8 Progress Indicator as they do in this example

请注意,通常,在C#,(或任何编程语言)中,您可以询问kb的总数(例如使用WebClient)like this。然后你可以编写一个计时器来检查当前下载的kb的数量,并每隔0.x秒更新一次进度条。

我希望能帮到你。祝你好运!

更新

如果您搜索page loading bar c#,您会看到多个有用的链接,向您展示如何为网络浏览器构建加载栏。

例如:

但特别是这个可能非常有用:

<强> http://tekkieblog.com/develop-simple-web-browser-with-progress-bar-using-csharp/

它声明您可以使用内置Status Strip control来获取所需的加载栏。从这个C#片段到Windows手机的步骤不应该那么大。

建议的方法是:

这个简单的教程将有助于使用C#将进度条添加到Web浏览器中。在设计视图中,从“工具”框中拖放“状态条”控件。状态条控件将显示在表单的底部。在窗体上选择状态条控件。单击下拉列表,然后选择进度条。进度条控件将显示在表单中。

在设计模式下右键单击Web浏览器控件并选择“属性”,然后在“属性”窗口中选择事件并移至“已更改进度”事件并双击它。添加以下代码段:

private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
    ProgressBar.Maximum = Convert.ToInt32(e.MaximumProgress);
    ProgressBar.Value = Convert.ToInt32(e.CurrentProgress);
}

所以他们基本上做的是将当前进度转换为一个数字,以便控制百分比。

您也可以采用不同的方式:

强烈推荐您看到此链接:http://www.youtube.com/watch?v=KHQCtunR2QI

该视频必须明确回答您的问题!

答案 1 :(得分:0)

void Browser_Navigating(object sender, NavigatingEventArgs e)
{
    ProgBar.Visibility = Visibility.Visible;
}

void Browser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    ProgBar.Visibility = Visibility.Collapsed;
}

你必须为更多事件崩溃进度条的可见性

  1. navigation_failed event
  2. 浏览器加载的事件未导航事件