2012-05-06 6 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の上にイメージの読み込みに時間がかかることがあることを考慮する必要があります。キャッシュ(ローカルストレージ)を作成し、イメージをこのキャッシュにバインドします。この方法で、前のページにイメージをロードし、次のページで高速に表示できます...しかし、このソリューションは実装には時間がかかります。 .. –

関連する問題