我正在使用以下代码在我的Windows Phone 8.1 App中共享图像。
private async void MainPage_DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
{
var deferral = args.Request.GetDeferral();
var bitmap = new RenderTargetBitmap();
await bitmap.RenderAsync(this);
// 1. Get the pixels
IBuffer pixelBuffer = await bitmap.GetPixelsAsync();
byte[] pixels = pixelBuffer.ToArray();
// 2. Write the pixels to a InMemoryRandomAccessStream
var stream = new InMemoryRandomAccessStream();
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.BmpEncoderId, stream);
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)bitmap.PixelWidth, (uint)bitmap.PixelHeight, 96, 96,
pixels);
await encoder.FlushAsync();
stream.Seek(0);
// 3. Share it
args.Request.Data.Properties.Description = "test";
args.Request.Data.Properties.Title = "test";
args.Request.Data.SetBitmap(RandomAccessStreamReference.CreateFromStream(stream));
deferral.Complete();
}
上面的代码显示了'准备要共享的内容'视图,但它没有显示共享图片的应用列表。
但是,如果我使用 DataPackage.SetText ,一切正常。
无法弄清楚问题。请帮助我!
答案 0 :(得分:0)
答案 1 :(得分:0)
将图像保存到文件,然后按照以下方式附加文件DataPackage:
args.Request.Data.SetStorageItems(new List<IStorageFile> { yourPngFile });