Windows应用商店8.1.页面之间的XAML进度条

本文关键字:之间 XAML 应用 Windows | 更新日期: 2023-09-27 18:20:07

我的Windows 8.1商店应用程序中的一个页面出现问题,需要很长时间才能呈现-它是一个包含多个列和行的网格,在加载页面时绑定到数据。缓慢的不是数据的加载,而是数据与网格的实际绑定。

理想情况下,我想显示一个对话框栏,向用户指示有东西正在加载,并且他们已经点击了上一个导航按钮。

我看到有人提到了有一个"加载页面"的可能性,其中只有一个进度条——我认为这个解决方案可能可行,但我不知道在加载页面的什么情况下应该导航到实际页面。

即。用户点击调用的按钮

this.Frame.Navigate(typeof(LoadingPage));

加载页面显示进度条

我知道需要能够呼叫

this.Frame.Navigate(typeof(ActualPage));

用户在加载ActualPage时会看到进度条。

如有任何建议,我们将不胜感激!

Windows应用商店8.1.页面之间的XAML进度条

感谢DEVExpress的支持团队,我的问题得到了解决。

首先,在需要时间加载的页面上,我将网格封装在ContentControl 中

<ContentControl Visibility="Collapsed" Name="Content">
    <!-- Grid in here -->
</ContentControl>

然后我添加了一个文本块,我将使用它来显示"正在加载…"到我的页面。我称之为控制指示器。

<TextBlock x:Name="indicator" Text="Loading..." />

我已经将以下方法附加到使用计时器的页面的Loaded事件

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    indicator.Visibility = Windows.UI.Xaml.Visibility.Visible;
    DispatcherTimer t = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };
    t.Tick += (dd, ee) =>
    {
        t.Stop();
        Content.Visibility = Windows.UI.Xaml.Visibility.Visible;
    };
    t.Start();
}

然后,当网格控件已加载时,我隐藏指示器TextBlock

void gridControl_Loaded(object sender, RoutedEventArgs e)
{
    indicator.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}

这对我来说非常有效。我不能使用Windows 8 ProgressBar控件,因为动画加载在加载网格的同一个线程上,但我很高兴有任何指示符。

还要感谢Brian Stump为我指明了正确的方向。

首先,由于内置UI虚拟化,我建议使用ListView或GridView来显示数据绑定对象。

然而,也许这会对你的情况起作用。

你知道你的页面什么时候可以显示了吗?如果是这样,请在网格的前面放置一个进度环,同时它在后台加载。

<Grid x:Name="FullPageGrid">
        <Grid x:Name="YourGridContent">
        </Grid>
        <Grid Background="White" Visibility="Visible" x:Name="ProgressRingGrid">
            <ProgressRing IsActive="True"></ProgressRing>
        </Grid>
</Grid>

当数据完全加载时,将"ProgressRingGrid"的可见性更改为visibility="Collapsed"