分離ストレージに保存された画像と共に ShareMediaTask を使用することは可能ですか。以下のコードを適用して、同じことを実装しようとしました。しかし、コードを実行すると、現在のページが点滅して同じページに戻ります。
var shareMediaTask = new ShareMediaTask { FilePath = "isostore:" + LocalImagePath };
shareMediaTask.Show();
分離ストレージに保存された画像と共に ShareMediaTask を使用することは可能ですか。以下のコードを適用して、同じことを実装しようとしました。しかし、コードを実行すると、現在のページが点滅して同じページに戻ります。
var shareMediaTask = new ShareMediaTask { FilePath = "isostore:" + LocalImagePath };
shareMediaTask.Show();
申し訳ありませんが、現在ShareMediaTaskは、保存された画像フォルダのカメラロールフォルダにあるメディアライブラリのアイテムのみをサポートしています。これはセキュリティ上の理由から行われます。たとえば、ShareMediaTaskを使用して別のアプリと共有する場合、そのアプリはアプリのIsoStoreにアクセスできないようにする必要があります。そのため、ShareMediaTaskは現在IsoStoreファイルパスをサポートしていません。
これは、画像をMediaLibrary Saved Picturesに保存し、ShareMediaTask@ http://www.reflectionit.nl/Blog/PermaLink620a4c87-a4af-4007-b4bc-81d851b11658.aspxを使用する方法のエンドツーエンドのコードサンプルです。
private void ButtonShare_Click(object sender, RoutedEventArgs e) {
var bmp = new WriteableBitmap(this.ContentPanel, null);
var width = (int)bmp.PixelWidth;
var height = (int)bmp.PixelHeight;
using (var ms = new MemoryStream(width * height * 4)) {
bmp.SaveJpeg(ms, width, height, 0, 100);
ms.Seek(0, SeekOrigin.Begin);
var lib = new MediaLibrary();
var picture = lib.SavePicture(string.Format("test.jpg"), ms);
var task = new ShareMediaTask();
task.FilePath = picture.GetPath();
task.Show();
}
}
写真をCameraRollフォルダーに保存し、MediaLibrary.SavePictureToCameraRoll()拡張メソッドを使用してShareMediaTaskを使用することもできます。