我有一个场景,我有一个带有图像的列表框。我已经在列表框中加载了图像,但是列表框加载速度很慢。
我想要一种更快的方式来加载列表框。同样,当我第二次加载列表框时,它也会减慢应用程序的速度。但是有没有办法将图像存储在隔离存储或任何地方的某个地方,以便在第二次加载时可以如此快速地加载。
总的来说,我想要一种更快的方式来加载列表框图像。这是我的代码:
public MainPage()
{
InitializeComponent();
getImages();
}
public void getImages()
{
try
{
MediaLibrary mediaLibrary = new MediaLibrary();
var pictures = mediaLibrary.Pictures;
foreach (var picture in pictures)
{
BitmapImage image = new BitmapImage();
image.SetSource(picture.GetImage());//out of memory exception
img mediaImage = new img();
mediaImage.Imgs = image;
imageList.Items.Add(mediaImage);
}
}
catch (Exception ex)
{
}
}
public class img
{
public img()
{ }
public BitmapImage Imgs { get; set; }
}
在 Xml...
<ScrollViewer Name="sc" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" Margin="0,422,0,43">
<ListBox Name="imageList" SelectionChanged="imageList_SelectionChanged_1" Height="126">
<ListBox.ItemsPanel>
<ItemsPanelTemplate >
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal">
<Image Margin="10" Name="image1" Source="{Binding Imgs}" Height="150" Width="150"></Image>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
- 所以请告诉我如何快速加载图像。
- 第二次加载页面或单击后退按钮,在其中的
getimages()
方法中picture.getimage()
显示OutOfOemoryException
(我已经用代码编写了)。