我正在为Windows Phone上的Internet Explorer Mobile开发另一种浏览器。我的问题是,我还想要一个显示页面加载的进度条,就像Internet Explorer移动设备一样,但我找不到WebBrowser控件上的任何属性或事件,告诉我页面加载了多远。有什么我可以做的吗?
PS。这个项目主要用于Windows Phone 8,所以可以使用一些WP 8独家api,但WP7支持也不错。
答案 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;
}
你必须为更多事件崩溃进度条的可见性