在标记副本之前,请阅读我的整个问题&努力。在我的应用程序中,我首先下载图像&保存在 local folder而不是隔离存储空间。然后我试图将本地图像URL(ms-appdata:///local/53077cab6ed10b742b00000c_cloud.png
)绑定到全景标题,但它不起作用。任何人都可以告诉我有什么问题。鉴于我的尝试基于过去的SO答案。
<phone:Panorama Title="{Binding Settings.Logo.HighResolution, Converter={StaticResource DebugConverter}}">
<phone:Panorama.TitleTemplate>
<DataTemplate>
<Grid Margin="130,80,0,0">
<Image Height="200">
<Image.Source>
<BitmapImage UriSource="{Binding Converter={StaticResource DebugConverter}}" />
</Image.Source>
</Image>
</Grid>
</DataTemplate>
</phone:Panorama.TitleTemplate>
</phone:Panorama>
<phone:Panorama Title="{Binding Settings.Logo.HighResolution, Converter={StaticResource DebugConverter}}">
<phone:Panorama.TitleTemplate>
<DataTemplate>
<Grid Margin="130,80,0,0">
<Image Height="200" Source="{Binding}"/>
</Grid>
</DataTemplate>
</phone:Panorama.TitleTemplate>
</phone:Panorama>
与#1&amp; #2但没有转换器。
我使用了两种类型的转换,但都没有。
public class DebugConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return new Uri(value.ToString());
//return new System.Windows.Media.Imaging.BitmapImage(new Uri(value.ToString()));
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
答案 0 :(得分:1)
尝试使用这样的转换器:
public class DebugConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
BitmapImage temp = new BitmapImage();
using (IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication())
using (IsolatedStorageFileStream file = ISF.OpenFile((string)value, FileMode.Open, FileAccess.Read))
temp.SetSource(file);
return temp;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
我还没有尝试过上面的代码,但是如果您的图片保存到隔离存储,这应该可行。我只是不知道你传递的价值 - 它应该是一个字符串指向文件&#34; 53077cab6ed10b742b00000c_cloud.png&#34;没有ms-appdata。
编辑 - 评论
我已经使用这样的代码检查了在LocalFolder中创建的文件(例如):
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", CreationCollisionOption.ReplaceExisting);
在App的IsolatedStorage根文件夹中创建(可以使用IsolatedStorageFile创建相同的文件)。所以这些文件应该可以通过IsolatedStorage访问。
答案 1 :(得分:0)
使用类似的东西来获取附加为项目内容的图像
var resStream = Application.GetResourceStream(new Uri(PlaceHolderImageUrl, UriKind.RelativeOrAbsolute));
if(resStream != null && resStream.Stream != null && resStream.Stream.Length > 0)
WriteableBitmap PlaceHolderWB = PictureDecoder.DecodeJpeg(resStream.Stream);
我有一个转换器,但你可以做你认为合适的方式..
答案 2 :(得分:0)
您可以使用coding4fun SuperImage而不是常规图像,因为它支持将隔离存储作为图像的位置。