2016-01-14 2 views
0

Я использую следующий код для обмена изображениями в моем телефоне Windows 8.1 Приложение.DataPackage.SetBitmap не работает в телефоне Windows 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 }); 
Смежные вопросы