我试图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();
}
我错过了代码中的任何内容吗?
------------------------------------- EDIT ---------
有另一种选择;请参阅此this link
答案 0 :(得分:2)
您检查了sharing content source app sample吗?它在说......
建议使用SetBitmap和SetStorageItems进行共享 单个图像,因为目标应用程序可能只支持其中一个。
因此,如果您仅使用SetBitmap(...)
,则Mail应用无法识别。您需要创建图像文件临时文件夹,然后使用SetStorageItems(...)