页面导航事件

时间:2017-10-08 15:10:26

标签: c# xaml uwp

我正在阅读UWP的文档并且我被卡住了一点。

我有几个连接到WCF服务的页面,从中获取一些信息,其中很少有人下载图片并需要几秒钟才能加载。

所以当我尝试使用

时,我决定在加载时实现加载屏幕
this.Frame.Navigate(typeof(page)); 

我陷入僵局状态,一切都冻结了,而新页面正在加载我尝试在另一页上加载页面加载事件,但这并没有多大帮助,因为它仍然锁定在最后一个表单上。

有人知道我在调用this.Frame.Navigate()时需要调用的正确事件,这样我可以在加载新帧时初始化我的加载控件吗?

2 个答案:

答案 0 :(得分:0)

尝试在像这样的单独窗口上启动视图

       try
        {
            CoreApplicationView Nv= CoreApplication.CreateNewView();
            var z = CoreApplication.MainView;

            int id= 0;
            await 
    Nv.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                Frame frame = new Frame();
                frame.Navigate(typeof(page));

                Window.Current.Content = frame;
                // You have to activate the window in order to show it later.
                Window.Current.Activate();




                id= ApplicationView.GetForCurrentView().Id;
            });
            bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(id);


        }
        catch (Exception eee)
        {
            Windows.UI.Popups.MessageDialog errorBox =
               new Windows.UI.Popups.MessageDialog("Couldn't Create New 
          Window: " + eee.Message);
            await errorBox.ShowAsync();


        }

答案 1 :(得分:0)

  1. 导航至载入画面

    this.Frame.Navigate(typeof(LoadingScreen));
    
  2. 在LoadingScreen中的OnNavigatedTo事件中“下载图片”

    protected override async void OnNavigatedTo(NavigationEventArgs e)
    {
        await DownloadPictures();
        //After downloading, navigate to the next page
        this.Frame.Navigate(typeof(page)); 
    }