【发布时间】:2014-06-11 10:48:44
【问题描述】:
我正在开发 Windows 8 Phone 应用程序。
我有一个问题,我在图像顶部加载带有文本的图像。它称为覆盖流功能。
我收到Out of memory exception
for (int j = 0; j < items.Count; j++)
{
for (int i = 0; i < items.Collection.Count; i++)
{
Myobj obj = items[j].Collection[i];
if (obj.correct == 1)
{
coverflow.Add(new CoverFlow(items[j].Text, answer.TextTwo));
}
}
}
CarouselList.ItemsSource = coverflow;
数据模板:
<DataTemplate x:Key="DataTemplate1">
<Grid VerticalAlignment="Center" HorizontalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Height="400" Width="400" CornerRadius="30,30,30,30">
<Border.Background>
<ImageBrush ImageSource="Images/sample.png" />
</Border.Background>
</Border>
<Grid Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Top">
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="5,20,5,5"
Foreground="#000000"
Text="{Binding Title}"/>
</Grid>
<Grid Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Bottom">
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="5,5,5,20"
Foreground="#000000"
Text="{Binding SubTitle}"/>
</Grid>
</Grid>
</DataTemplate>
这里有大约 300 多个项目依次显示:
像这样:
它根本不工作我试图减少 widht and height from 400 to 200 它工作但我希望图像大小为 400 以便看起来不错。
即使我的图像是 400*400,我如何才能避免这种内存不足
【问题讨论】:
-
一个想法是只加载你需要的这么多项目......某种分页。加载前 50 个左右...当用户滑动到末尾时再加载 25 个并删除前 25 个,依此类推...
-
@IvanCrojachKaračić 你能给我举个例子吗?
标签: c# silverlight windows-phone-8 windows-phone out-of-memory