2012-05-07 61 views
2

我有一個網格,背景定義爲XAML中的ImageBrush。圖像相當大(約1 MB,jpg)。當我導航到頁面時,首先顯示只有黑色背景,然後稍後加載背景圖像。它看起來不太好。如何解決這個問題?也許一些圖像緩存或加載圖像到內存?網格背景閃爍(Metro應用程序)

編輯:由於應用程序應支持的最高分辨率,圖像爲2560x1600。有沒有辦法檢測屏幕分辨率並使用合適的圖像? 我還閱讀了一篇關於在Windows 8博客上縮放圖像的文章,但我找不到任何示例。我們的想法是,1366x768的背景爲100%,1920x1080爲140%,2560x1600爲180%,系統根據用戶的分辨率選擇合適的背景?

+0

查看我更新的答案以獲取更多信息。 –

回答

0

像我之前問MSDN上similar question,但沒有得到答案,這將是有益的普遍。如果您希望能夠進入任何頁面並立即看到圖像 - 您需要在瀏覽之前加載它。如果您想避免閃爍 - 您可以將畫筆的不透明度設置爲0,並在將不透明度設置回1.0以進行平滑淡入漸變之前,在ImageBrush上等待ImageOpened事件。

編輯*

WinRT XAML Toolkit的最新版本有一個附加屬性(ImageExtensions.FadeInOnLoaded),您可以使用圖像中褪色時,它的負載應該看起來比簡單地顯示它在加載時好了很多。還有一個樣本。

要處理多個圖像尺度 - 你需要與像SplashScreen.scale-100.png,SplashScreen.scale-140.png,SplashScreen.scale-180.png,名稱圖像那麼當您設置圖像源閃屏。 PNG - 分辨率的正確圖像將自動被拾取。有關更多詳細信息,請參閱此msdn article

0

您可以生成縮略圖,而不是與1 MB

+0

不是一個選項,該應用程序必須在2560x1600上顯示上帝,1mb jpg必須作爲背景 –