C# 如何从独立存储中获取映像
我有这个XAMLC# 如何从独立存储中获取映像,c#,silverlight,windows-phone-7,isolatedstorage,C#,Silverlight,Windows Phone 7,Isolatedstorage,我有这个XAML <ListBox Margin="0,0,-12,0" ItemsSource="{Binding Items}" Name="list"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" Margin="0,0,0,17"> <!--Repla
<ListBox Margin="0,0,-12,0" ItemsSource="{Binding Items}" Name="list">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,17">
<!--Replace rectangle with image-->
<Image Height="100" Width="100" Source="{Binding Img}" Margin="12,0,9,0"/>
<StackPanel Width="311">
<TextBlock Text="{Binding Pos}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我已经将图像保存到独立存储中,但问题是:如何从独立存储中读取名称为id.jpg(1.jpg,2.jpg,3.jpg…)的图像?这里有一个非常完整的示例,说明如何向ISO存储写入和从ISO存储读取图像
在
单个
类中,Img
属性应为ImageSource类型。要设置此属性(从IsolatedStorage读取图像),可以执行以下操作:
private ImageSource getImageFromIsolatedStorage(string imageName)
{
BitmapImage bimg = new BitmapImage();
using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream stream = iso.OpenFile(imageName, FileMode.Open, FileAccess.Read))
{
bimg.SetSource(stream);
}
}
return bimg;
}
然后在代码段中:
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
IsolatedStorageFileStream isoStoreStream = isoStore.OpenFile("chart.xml", FileMode.Open);
using (StreamReader reader = new StreamReader(isoStoreStream))
{
XElement xml = XElement.Parse(reader.ReadToEnd());
var list = from var in xml.Descendants("Pos")
select new Single
{
Pos = Int32.Parse(var.Attribute("id").Value),
Img = getImageFromIsolatedStorage(string.Format("{0}.jpg", Pos));
};
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
IsolatedStorageFileStream isoStoreStream = isoStore.OpenFile("chart.xml", FileMode.Open);
using (StreamReader reader = new StreamReader(isoStoreStream))
{
XElement xml = XElement.Parse(reader.ReadToEnd());
var list = from var in xml.Descendants("Pos")
select new Single
{
Pos = Int32.Parse(var.Attribute("id").Value),
Img = getImageFromIsolatedStorage(string.Format("{0}.jpg", Pos));
};