C# 在页面之间导航期间显示Progressring

C# 在页面之间导航期间显示Progressring,c#,windows-runtime,mvvm-light,winrt-xaml,C#,Windows Runtime,Mvvm Light,Winrt Xaml,我的意图是,当用户单击一个按钮导航到另一个页面时,他将看到一个进程,直到另一个页面完全加载 我找到了很多关于这个主题的教程,但都使用了代码隐藏。我希望能够不使用代码隐藏(如果可能的话)。我目前正在将MvvmLight与ViewModelLocater一起使用 我已经准备好在我的视图中创建一个虚拟网格,可以显示Progressring,并且我已经将其活动和可见属性绑定到我的viewmodels <Grid Background="Transparent" Visibility="{Bind

我的意图是,当用户单击一个按钮导航到另一个页面时,他将看到一个进程,直到另一个页面完全加载

我找到了很多关于这个主题的教程,但都使用了代码隐藏。我希望能够不使用代码隐藏(如果可能的话)。我目前正在将MvvmLight与ViewModelLocater一起使用

我已经准备好在我的视图中创建一个虚拟网格,可以显示Progressring,并且我已经将其活动和可见属性绑定到我的viewmodels

<Grid  Background="Transparent" Visibility="{Binding LoadCircleVisibility}" Height="{Binding HeigthScreen}" Width="{Binding WidthScreen}" >
            <ProgressRing Height="50" Width="50" IsActive="{Binding ProgressRingActive}" Visibility="{Binding ProgressRingVisibility}"></ProgressRing>
        </Grid>
但当我想导航到另一个页面时,没有前进

因此,问题是如何在mvvmlight加载新页面时显示progressring

编辑:部分解决方案:


我的导航速度较慢并锁定uithread的原因是它必须构建整个页面。我通过确保所有的方法和逻辑都是ut到不同的线程中来改变这一点,这确保了我的uithread立即继续,并且我可以在第二页上显示loadcircle,而它正在执行逻辑和方法。

如果没有代码,我不知道如何做到这一点 您可以将根面板添加到应用程序中,并在其中放置自定义控件。此自定义控件仅用于显示/隐藏预加载程序。
当您卸载第一页(或其他事件)时,您将显示自定义预加载程序;下载完第二页后,您将隐藏自定义预加载程序。

是的,我读过类似的内容,但我还没有发现如何在不使用代码behing和viewmodellocater“获取”我的视图的情况下实现这一点
private void ProggressBarVisible(bool visible)
    {
        if (visible)
        {
            ProgressRingVisibility = Visibility.Visible;
            LoadCircleVisibility = Visibility.Visible;
        }
        else
        {
            ProgressRingVisibility = Visibility.Collapsed;
            LoadCircleVisibility = Visibility.Collapsed;
        }
        ProgressRingActive = visible;
    }