我的数据库中有两个ListBox,每个都有一个图像。
<DataTemplate x:Key="PostsFieldItemTemplate" >
...
<Image Grid.Row="0" Margin="5" Width="100" Height="100" HorizontalAlignment="Left" Source="{Binding WImage}" Stretch="UniformToFill"/>
...
</DataTemplate>
<DataTemplate x:Key="ItemTemplateListBoxAnimation">
...
<Image Width="235" Height="210" Grid.Row="0" Source="{Binding tImage}" Stretch="UniformToFill"/>
...
</DataTemplate>
我在我的代码中将url字符串添加到图像
PostsField.Items.Add(new ListPost(post.id, api.improveText(post.title), api.improveText(post.excerpt), post.attachments[0].url, api.improveDate(post.date)));
GridImages.Items.Add(new TempGrid(post.id, post.attachments[0].url, api.improveText(post.title), api.improveDate(post.date)));
然后我按下我的按钮&#34;加载更多&#34;在某些时候我收到异常(Out Of Memory)。我在ItemTemplates中注释掉<Image Source="{Binding MyImage}"... />
,一切正常..
请告诉我,我该怎么做才能改善我的形象?
答案 0 :(得分:1)
应用程序的内存使用限制在这里是详细信息。你可以找到详细信息here
正如您所提到的那样,您正在加载图像形式API(我认为是Web API)。并在某些按钮单击列表框中显示它们,并在某些时候抛出内存不足异常。现在在低内存手机上,一个应用程序可以使用高达150MB的手机内存。当您的应用超过该限制时,它会抛出此异常。您可以做的是从列表框中删除/处置以前添加的图像以释放内存,而不是添加新图像。
您可以使用DeviceExtendedProperties.GetValue(String)方法检查ApplicationWorkingSetLimit值,以检查应用程序可用的内存限制。有关如何执行此操作的示例,请参阅How to disable features in apps for lower-memory phones for Windows Phone 8
希望这有帮助