Windows Metro Apps(C#)では、ValueConverterを使用してImage-Uriを次のように渡します。
public class ProfileImage : IValueConverter {
public Object Convert(Object value, Type targetType, Object parameter, String language) {
if (value == null) {
return "Common/images_profile/user.png";
}
return "ms-appdata:///local/" + (String)value;
}
public Object ConvertBack(Object value, Type targetType, Object parameter, String language) {
return value;
}
}
XAML:
<Image x:Name="profileImage" Height="80" Width="80" Source="{Binding Path, Converter={StaticResource ProfileImage}}"/>
画像はlocalFolderに非同期でダウンロードされています。
これをWindowsPhone8で使用したかったのですが、画像が表示されません。
var localFolder = ApplicationData.Current.LocalFolder;
StorageFile myFile = await localFolder.CreateFileAsync(
UID + ".jpg",
CreationCollisionOption.FailIfExists);
using (var s = await myFile.OpenStreamForWriteAsync()) {
s.Write(imageBytes, 0, imageBytes.Length);
}
LocalStorageへのイメージの書き込みに使用されます。
にコンテンツがない場合はvalue
、の画像がCommon/images_profile/user.png
正しく表示されています。これはパッケージにあり、ローカルフォルダにはありません。
画像を表示するためにreturnパラメータとして使用する必要がある形式を知る必要があります。