0

我有一个 Web 服务,它返回大约 100 张照片,我想在 Windows Phone 7 上以 3xN 网格显示所有照片。

我已经尝试过 WrapPanel 并且它可以工作,但只有几张图像.. 还有更多,我的内存不足并且调试停止。

代码:

<ListBox Height="600" HorizontalAlignment="Left" Name="screenshotsListBox" VerticalAlignment="Top" Width="420">
                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <toolkit:WrapPanel />
                        </ItemsPanelTemplate>
                    </ListBox.ItemsPanel>
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                </Grid.RowDefinitions>
                                <Image Source="{Binding}"
                Margin="0"
                Height="110"
                Width="110"
                CacheMode="BitMapCache"
                Stretch="UniformToFill"
                Grid.Row="0" />
                            </Grid>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

我将所有图像放在一个字符串数组中,然后将其绑定到列表框。

有什么办法可以在不占用所有内存的情况下显示从 Web 服务下载的照片网格?谢谢

4

1 回答 1

1

我建议对代码进行分析以确定内存使用的实际原因是什么,但我猜如果您仅将它们显示为 110x110px版本。即使您将它们显示为拉伸(收缩)到更小的尺寸,完整的图像也会加载到内存中。如果它们是大图像,则内存使用量将很快增加。

在http://blogs.msdn.com/b/swick/archive/2011/04/07/image-tips-for-windows-phone-7.aspx上有一些与图像和内存相关的有用提示

于 2012-05-23T09:09:25.043 回答