在通用 windows 应用程序的框架中加载后台页面

Background page loading in a frame in universal windows app

我的 UWP 应用程序中有一个 SplitView 控件,当点击 SplitView 窗格中的特定 ListBoxItem 时,主页中的一个框架应该导航到该页面。我为此编写了以下代码

private void Page2_Tapped(object sender, TappedRoutedEventArgs e)
    {
        PageLoadingProgress.IsActive = true;
        MainApplicationSplitView.IsPaneOpen = false;
        MainApplicationFrame.Navigate(typeof(Page2));
        PageLoadingProgress.IsActive = false; 

    }

我面临的问题是,每当点击 ListBoxItem 时,整个应用程序都会变得无响应,直到加载 Page2。看不到 PageLoadingProgress ProgressRing 并且 SplitView 窗格没有像我预期的那样立即关闭。如何使这项工作?我希望在加载页面时关闭窗格并显示 ProgressRing 并且应用程序应该响应。 提前致谢。

您正在 UI 线程上工作,它阻塞 UI 并导致您遇到延迟。

这个link应该对你有帮助http://wpdev.apps-1and1.net/dispatcher-yield-when-and-how-to-use-it-on-winrt/