2014-08-29 76 views
1

我的Windows 8.1 Store應用程序中的頁面出現問題,需要很長時間才能呈現 - 這是一個網格,其中包含許多列和行的網格,頁。 這不是數據的加載緩慢,而是數據與網格的實際綁定。Windows Store 8.1。 XAML Progress Bar頁面間

我最好想顯示一個對話欄來向用戶指出正在加載的東西,並且他們點擊了上一個導航按鈕。

我看到有人提到有一個「加載頁面」只有一個進度條的可能性 - 我認爲這個解決方案可能工作,但我不能解決什麼樣的加載頁面的事件,我應該導航到實際的頁面。

即 用戶點擊按鈕,它調用

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

加載頁面時顯示進度條

我知道需要能夠調用

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

用戶看到進度條,而ActualPage負載。

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

+0

你會考慮使用gridview嗎? 取決於您的數據模型,但gridview內置了UI虛擬化策略來遞增加載對象。 – 2014-08-29 12:35:47

回答

1

由於改變能見度在DevExpress的技術支持團隊我有一個解決我的問題。

首先,需要時間來加載我有我的包裹電網在ContentControl中

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

然後我說,我將使用以顯示一個TextBlock「載入中...」我的頁面在頁面上。我稱這個控制指標。

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

我已附加了以下方法,其使用定時器

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指引我走向正確的方向。

0

首先,我會建議使用ListView或GridView來顯示您的數據綁定對象,因爲內置UI虛擬化。

但是,也許這會適合您的情況。

你知道你的頁面何時可以顯示嗎?如果是這樣,請在柵格前面放置一個進度環,並在後臺加載。

<Grid x:Name="FullPageGrid"> 
     <Grid x:Name="YourGridContent"> 

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

當數據被完全加載時,「ProgressRingGrid」知名度=「坍塌」

+0

感謝您的建議,不幸的是它是第三方網格控制,所以我無法利用虛擬化選項。我已與第三方聯繫,看看他們是否有任何建議。 – RCairns 2014-08-29 16:17:24

+0

另外據我所知,我不認爲我有任何方式知道頁面已完成加載 - 如果有一些事件一旦加載完成就可能觸發,這將是完美的。然後,我將網格的可見性設置爲「摺疊」,最初讓頁面加載,用戶看到它們已經導航,然後在此之後更改網格的可見性。我正想着甚至在計時器上這樣做。 – RCairns 2014-08-29 16:19:57

+0

您是否使用數據模板來設置網格中的對象?每個框架元素都會有一個'Loaded'事件,您可以附加一個事件處理程序。如果您可以找到要加載的最後一個元素,則更改事件處理程序中的可見性。 – 2014-08-29 17:39:32