簡體   English   中英

Windows應用商店8.1。 頁面之間的XAML進度欄

[英]Windows Store 8.1. XAML Progress Bar between pages

我在Windows 8.1 Store App中的頁面出現問題,該頁面花費很長時間來呈現-這是一個包含許多列和行的網格,該網格在頁面加載時綁定到數據。 並不是緩慢的數據加載,而是數據到網格的實際綁定。

理想情況下,我想顯示一個對話框以向用戶指示正在加載某些內容,並且他們已經單擊了上一個導航按鈕。

我看到有人提到有可能只有一個進度條的“正在加載頁面”的可能性-我認為此解決方案可能有效,但在加載頁面的任何情況下我都無法解決,應該導航到實際頁面。

即用戶點擊按鈕

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

加載頁面顯示進度條

我知道需要能夠打電話

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

加載ActualPage時,用戶會看到進度條。

任何建議將不勝感激,謝謝!

多虧了DEVExpress的支持團隊,我才得以解決我的問題。

首先,在需要時間加載的頁面上,我將Grid包裹在ContentControl中

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

然后,我添加了一個TextBlock,它將用於在頁面上顯示“正在加載...”。 我稱這個控制指標。

<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();
}

然后,當gridcontrol已加載時,我隱藏指示器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”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM