2016-01-14 76 views
0

我正在使用以下代码在Windows Phone 8.1应用程序中共享图像。DataPackage.SetBitmap在Windows Phone 8.1中无法正常工作WinRT 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

保存图像文件,然后安装文件做DataPackage这样的:

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