[英]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.