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,一切正常。

无法弄清楚问题所在。请帮帮我!

DataPackage.SetBitmap 在 Windows Phone 8.1 WinRT App 中不起作用

下面的两个链接帮助我捕获屏幕截图。

截取屏幕截图

保存和共享屏幕截图

将图像保存到文件,然后附加文件,像这样执行数据包:

    args.Request.Data.SetStorageItems(new List<IStorageFile> { yourPngFile });