在Windows Phone 8.1中共享图像

时间:2015-07-06 23:18:53

标签: windows image windows-phone-8.1 share

我想在我的应用中分享图片。但是,图像不是位于文件夹中,而是动态拍摄的#34;。基本上我有一个Image对象

Image i = new Image() { Source = await CreateBitmapFromElement(stackpanel1) };

其中CreateBitmapFromElement定义如下

private async Task<RenderTargetBitmap> CreateBitmapFromElement(FrameworkElement uielement)
{
   try
   {
       var renderTargetBitmap = new RenderTargetBitmap();
       await renderTargetBitmap.RenderAsync(uielement);
       return renderTargetBitmap;
   }
   catch (Exception ex)
   {
       System.Diagnostics.Debug.WriteLine(ex);
   }
   return null;
}

Windows Phone共享合约允许共享位于图片库中的图像(例如),但在这种情况下我应该使用什么?

1 个答案:

答案 0 :(得分:0)

       protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                DataTransferManager.GetForCurrentView().DataRequested += OnShareDataRequested;
                base.OnNavigatedTo(e);

            }

            protected override void OnNavigatedFrom(NavigationEventArgs e)
            {
                DataTransferManager.GetForCurrentView().DataRequested -= OnShareDataRequested;
                base.OnNavigatedFrom(e);
            }

private void OnShareDataRequested(DataTransferManager sender, DataRequestedEventArgs _dataRequestedEventArgs)
        {


            DataRequest request = _dataRequestedEventArgs.Request;
            request.Data.Properties.Title = "KeyTreat Sticker";
            request.Data.Properties.Description = "KeyTreat Sticker: " + StickerName;

            // Because we are making async calls in the DataRequested event handler,
            // we need to get the deferral first.
            DataRequestDeferral deferral = request.GetDeferral();

            // Make sure we always call Complete on the deferral.
            try
            {
                request.Data.SetStorageItems(storageItemsObject);

                request.Data.Properties.Thumbnail = RandomAccessStreamReference.CreateFromFile(StorageFileObject);
                request.Data.SetBitmap(RandomAccessStreamReference.CreateFromFile(StorageFileObject));
            }
            finally
            {
                deferral.Complete();
            }



        }