DataPackage.SetBitmap 在 Windows Phone 8.1 WinRT App 中不起作用
本文关键字:WinRT App 不起作用 SetBitmap Windows Phone DataPackage | 更新日期: 2023-09-27 18:30:35
我正在使用以下代码在我的Windows Phone 8.1应用程序中共享图像。
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,一切正常。
无法弄清楚问题所在。请帮帮我!
下面的两个链接帮助我捕获屏幕截图。
截取屏幕截图
保存和共享屏幕截图
将图像保存到文件,然后附加文件,像这样执行数据包:
args.Request.Data.SetStorageItems(new List<IStorageFile> { yourPngFile });