2

share an Imageを経由しようとしていますShare charmが、チャーム ' Mail' アプリケーションで使用できないため、メールで画像を共有できませんでした。しかし、利用可能なオプションを介しNative Photo appて同じ画像を共有しようとしました。Mail

私のアプリ:ビューを共有 ネイティブフォトアプリ:ビューを共有

私のコードの下

    private async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e)
    {
    DataRequestDeferral deferral = e.Request.GetDeferral();

    DataPackage requestData = e.Request.Data;
    requestData.Properties.Title = "Image";
    IRandomAccessStream stream = new InMemoryRandomAccessStream();
    Guid encoderId;
    switch (file.FileType)
    {
        case ".png":
            encoderId = BitmapEncoder.PngEncoderId;
            break;
        case ".jpg":
        case ".jpeg":
        default:
            encoderId = BitmapEncoder.JpegEncoderId;
            break;
    }
    BitmapEncoder encoder = await BitmapEncoder.CreateAsync(encoderId, stream);
    Stream pixelStream = image.PixelBuffer.AsStream();
    byte[] pixels = new byte[pixelStream.Length];
    await pixelStream.ReadAsync(pixels, 0, pixels.Length);
    encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)image.PixelWidth, (uint)image.PixelHeight, 96.0, 96.0, pixels);
    requestData.SetBitmap(RandomAccessStreamReference.CreateFromStream(stream));
    await encoder.FlushAsync();

    deferral.Complete();
}

私のコードで何か見逃していますか?

- - - - - - - - - - - - - - - - - - -編集 - - - - -

代替品を手に入れました。このリンクを参照してください

4

1 に答える 1

2

共有コンテンツ ソース アプリのサンプルを確認しましたか? それは言っている...

ターゲット アプリはどちらか一方しかサポートしていない可能性があるため、1 つの画像を共有するには SetBitmap と SetStorageItems の両方を使用することをお勧めします。

そのため、 のみを使用するSetBitmap(...)と、メール アプリは認識しません。画像ファイルの一時フォルダーを作成してから使用する必要がありますSetStorageItems(...)

于 2013-10-18T06:53:53.667 に答える