【问题标题】:show progress bar/ring in windows 8 app while a webpage is loading in webview control在 webview 控件中加载网页时在 Windows 8 应用程序中显示进度条/环
【发布时间】:2013-03-20 23:46:29
【问题描述】:

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

现在我的问题是,如何在 Windows 8 应用程序的 webview 控件中加载某些网页时在应用程序中显示进度条/环。

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

【问题讨论】:

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


    【解决方案1】:

    首先声明委托

    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 页面。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我猜你说的是windows窗体中的webbrowser控件。我认为windows 8应用程序中既不存在这样的控件,也没有替代方法。
      • Webview 已加载完成。
      【解决方案3】:

      只是一个更正,如果您将其用于手机,那么代替

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

      事件处理程序是

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多