2012-10-04 29 views
3

每當我似乎在我的Metro應用程序中從一個頁面導航到另一個頁面時,會出現一個「flash」,其中不顯示任何內容 - 只有默認的背景顏色。我如何使Frame.Navigate方法正確轉換?我的應用程序相當沉重,所以我想它的一部分是圖像加載。儘管我嘗試了其他應用程序,似乎也有類似的問題。如何在WinRT中實現無縫頁面導航?

回答

2

我找到的解決方案是使用WinRT XAML工具包,它具有AlternativePage和AlternativeFrame控件。我使用擴展閃屏來預加載MainPage以及用戶可能需要快速訪問的任何頁面,然後在需要時預先加載其他頁面。

1

我在使用圖像密集型Metro應用程序時遇到了同樣的問題。簡而言之,我從來沒有找到一種無縫,無干擾的轉換方式,即使在訂購加載項目並通過異步調用填充適當的元素時也是如此。

我最終做的是在第一頁的父元素上應用淡出效果,在第二頁上應用淡入效果。它使負載更加舒適。與圖像的彈出式效果不同,它可以平滑過渡。它在非衰落版本上增加了非常短的延遲,但它看起來更有機和吸引人。

+0

好的,你是怎麼做到的? – Harry

+0

對於我而言,我只是用DoubleAnimation創建了一個StoryBoard,該動畫從UIElement.Opacity 1到0淡出,淡入0到1,並適當地應用它。也可以使用FadeOutThemeAnimation和FadeInThemeAnimation元素,儘管我有更多的自定義需求。因爲我的導航是通過點擊觸發的,所以我將storyBoard.Begin()綁定到點擊,並且在故事板上完成了事件的實際導航。第二頁以父元素上的不透明度0開始,並在頁面OnNavigatedTo事件中執行故事板中的淡入淡出。 –

+0

再一次,這是一個地鐵應用程序。這裏有一個動畫UI元素的鏈接。 http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452703.aspx –