2012-05-06 74 views
0

我有列表框,我需要從互聯網顯示圖像正在載入圖片嗎?

我有一個數據源是這樣的:

enter image description here

和我在使用DataTemplate這樣列表框結合「圖像」:

<DataTemplate x:Key="DataTemplate1"> 
      <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
       <Image Source="{Binding image}"></Image> 
       <TextBlock Text="{Binding imagedec}"></TextBlock> 
      </Grid> 
     </DataTemplate> 

我能夠看到圖像,但它來晚了,在這種情況下顯示圖像的最佳方式是什麼?

回答

0

這是因爲必須先從網絡(或緩存)加載圖像。嘗試添加一個灰色背景的佔位符,並設置一個固定的高度和寬度:

<Border Background="{StaticResource PhoneInactiveBrush}" Width="100" Height="100"> 
    <Image Source="{Binding image}" Stretch="UniformToFill" Width="100" Height="100" /> 
</Border> 

此解決方案只有當你可以設置一個固定的高度和寬度...

UPDATE

您應該使用LowProfileImageLoader以提高性能: http://blogs.msdn.com/b/delay/archive/2010/09/02/keep-a-low-profile-lowprofileimageloader-helps-the-windows-phone-7-ui-thread-stay-responsive-by-loading-images-in-the-background.aspx

+0

我知道,他們正在從網上加載:D,所以這是迄今爲止最好的解決方案?我們必須等到圖像不顯示或類似異步數據/圖像加載! ,我不確定:( – vir

+0

如果你設置圖像,它將被異步加載,你必須考慮到圖像在internat上的加載可能需要一段時間,但也可以將圖像加載到緩存(本地存儲)並將映像綁定到此緩存中......這樣您可以將圖像加載到上一頁並在下一頁中更快地顯示出來......但這種解決方案實施起來要花費更多時間。 .. –