うまくいけば、私が必要としているものと問題が何であるかを説明することができます
私は以下のリストボックスを持っています
<ListBox Margin="0,8,0,0" toolkit:TiltEffect.IsTiltEnabled="True" x:Name="ImageList" ItemsSource="{Binding Images}" HorizontalAlignment="Center" BorderThickness="4">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="{Binding imageID, Converter={StaticResource ImageConverter}}" Width="125" Height="125" Margin="6" Tap="list_OnTap">
<TextBlock Name="description" Foreground="{Binding TextColor}" Text="{Binding text}" Visibility="{Binding ShowText, Converter={StaticResource BooleanToVisibilityConverter}}" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap"/>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu IsZoomEnabled="False" Name="deletectx">
<toolkit:MenuItem Header="delete" Click="delete_Click"/>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</Grid>
上記のコードは画像のグリッドを作成します。画像にテキストを表示する必要があるため、グリッドの背景を使用して画像を表示しました(これを行う他の方法があるかどうかはわかりません)このページには、125x125のサイズで約30枚の画像が読み込まれますピクセルとそれぞれ約4kb。大量のメモリを消費していることに気づきました。画像のキャッシュをクリアすることについてここでいくつかの投稿を読みましたが、画像コントロールではなく画像としてグリッドの背景を設定していることを考えると、上記のコードでそれをどのように行うべきかわかりません。
リストボックス内のグリッドにアクセスできる場合もありますが、それを使用すると、最初の画像にのみ適用され、残りの画像には適用されません。ナビゲートアウェイイベントで画像キャッシュをクリアする必要があります。
別の質問ですが、パフォーマンスの問題もあります。このページに入るには少し時間がかかり、Windows Phone App Analyserで低フレームレートの警告が表示されます。何をしているのかわかりません(リストボックスアイテムごとにConverterを介して画像を読み込む)正しいかどうか!どうすればこれを速くできますか?