0

分離ストレージに保存された画像と共に ShareMediaTask を使用することは可能ですか。以下のコードを適用して、同じことを実装しようとしました。しかし、コードを実行すると、現在のページが点滅して同じページに戻ります。

  var shareMediaTask = new ShareMediaTask { FilePath = "isostore:" + LocalImagePath };
  shareMediaTask.Show();
4

2 に答える 2

4

申し訳ありませんが、現在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を使用することもできます。

于 2012-12-20T00:25:51.350 に答える