2013-02-22 182 views
3

在我們的WinRT應用程序中,我們通過XAML提供了圖像作爲網格和按鈕的背景。花費很長時間加載WinRT XAML的圖片

我們觀察到需要很長時間加載的圖片,應用程序首先顯示其他文本控件(如TextBlock),然後在一段時間後顯示圖片加載。直到我們只在頁面中看到文本控件。

我們正在設置背景如下

<ImageBrush ImageSource="ms-appx:////Images/image.png"/> 

請讓我知道,我們能做些什麼來解決這個問題。

謝謝。

回答

0

這是一個奇怪的行爲, 但是,您可以嘗試選擇較小尺寸/分辨率的圖像來優化渲染時間。

另外,儘量設置背景圖片在頁面的構造 - 因爲,微軟可能(我不知道雖然)通過異步操作處理XAML解析

1

可以

  • 降低的分辨率圖像
  • 等待它向你展示頁面之前加載 - 要麼通過啓動較早莫名其妙或顯示網頁完全是黑色的,並說,在當圖像加載
  • 使用較低分辨率圖像或其他衰落設置圖像加載到
  • 並不

我有一種預感,如果圖像源被設置得足夠早使用圖像 - 的WinRT將等待一段時間(幾分之一秒)之前,顯示了一個新頁面,使圖像在開始運行過渡動畫等之前有機會加載,因此在更高分辨率加載之前完全降低圖像分辨率或使用較低分辨率是一種方法。

另一個選擇是讓背景位於根框之外 - 例如,修改App.xaml.cs以網格作爲根視覺,並將背景圖像和框架放入其中,以便隨時更改圖像。

+0

其實網格背景圖像的大小1.5 MB,它是在分辨率,覆蓋整個裝置1366×768屏幕並作爲我的頁面的背景。因此,如果我更改分辨率,則需要較長的時間才能加載,如果我們對其進行拉伸,則顯示效果不佳。 – 2013-02-22 09:16:23

+0

背景圖片經常被沖掉,在這種情況下,較低的分辨率並不那麼令人震驚,但您有其他工具可以修復它。 – 2013-02-22 14:30:43

0

而不是ImageBrush嘗試使用普通ImageCashMode屬性設置爲「BitmapCache」:

<Grid> 
    <Image Source="ms-appx:////Images/image.png" 
      CacheMode="BitmapCache" /> 

    <!-- Your other content above background image --> 
</Grid>