在webview控件中加载网页时,在Windows 8应用程序中显示进度条/响铃

时间:2013-03-20 23:46:30

标签: c# windows-8 microsoft-metro windows-store-apps

我有在调用异步函数时添加进度条和进度环的经验。这是一项简单的工作,因为它仅依赖于进度条和进度环的IsIndeterminate和IsActive属性。

现在我的问题是,当一些网页加载到Windows 8应用的webview控件中时,如何在应用中显示进度条/响铃。

我正在搜索属性或事件,它告诉Web视图中的网页当前处于加载状态。如果有人遇到这样的房产,如果您有任何其他解决方案,请写下来,请告诉它!

3 个答案:

答案 0 :(得分:7)

首先声明代理

public delegate void LoadCompletedEventHandler(  object sender,  NavigationEventArgs e);

在进度条/响铃必须开始显示的区域中逻辑地添加以下代码。

ProgressRing1.IsActive = true; //for progress ring
ProgressBar1.IsIndeterminate = true; //for progress bar

添加此行以将控件传输到事件,该事件确定webview控件是否已完全加载网页。

WebView1.LoadCompleted += new Windows.UI.Xaml.Navigation.LoadCompletedEventHandler(WebView1_LoadCompleted);

定义以下函数来处理网页满载时会发生什么(你的目的是在这个时间点隐藏进度条/响铃)

void WebView1_LoadCompleted(object sender, Windows.UI.Xaml.Navigation.NavigationEventArgs e)
{
//code for hiding progress bar/ring
ProgressRing1.IsActive = false; //for progress ring
ProgressBar1.IsIndeterminate = false; //for progress bar
}

如需进一步参考,请查看此MSDN页。

答案 1 :(得分:1)

您可以使用NavigatedDocumentCompletedNavigated中关闭忙碌,我相信您必须与原始链接进行比较,因为它会在重定向时触发。

答案 2 :(得分:0)

只需更正,如果您将其用于手机,则代替

`new Windows.UI.Xaml.Navigation.LoadCompletedEventHandler(WebView1_LoadCompleted);`

事件处理程序将是

`new System.Windows.Navigation.LoadCompletedEventHandler(WebView1_LoadCompleted);`