如何在WP8.1 Rt中在社交媒体上分享图像

本文关键字:媒体 分享 图像 WP8 Rt | 更新日期: 2023-09-27 18:07:59

我在wp8.1 rt中创建了应用程序。当按钮被点击时,我需要截取页面的屏幕截图并在社交媒体(如facebook, twitter,…)上分享。到目前为止我所做的是-

DataTransferManager dtManager = DataTransferManager.GetForCurrentView();
   dtManager.DataRequested += dtManager_DataRequested;

private async void dtManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs e)
    {
        e.Request.Data.Properties.Title = "here is title";
        e.Request.Data.Properties.Description = "H..........";
        e.Request.Data.SetWebLink(new Uri("http://......."));
       //here i need to add image also
    }
private void share_Click(object sender, RoutedEventArgs e)
    {
        Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();
    }

到这里它的工作,我可以分享标题,描述,....但无法共享以编程方式捕获的图像为了捕获图像,我所做的如下:

 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;
    }

img。source= await CreateBitmapFromElement(rootcontent);//这里的rootcontent是我需要捕获的网格名称。

这里我也能得到图像。但无法分享这张照片。我读了一些博客,但仍然无法解决它。我想我需要把它转换成BitmapImage。我怎么能做到呢?或者有没有其他最好的方法来处理这个问题?

我需要的是当分享按钮被点击时,我需要捕获屏幕截图并在社交媒体(如facebook)上分享。

如何在WP8.1 Rt中在社交媒体上分享图像

您可以使用e.p request . data . setbitmap来传输屏幕截图。但是这个方法的参数类型是RandomAccessStreamReference,所以你需要将RenderTargetBitmap转换为RandomAccessStreamReference。

基本思想是:获取像素并将像素写入InMemoryRandomAccessStream。

你可以从文章中找到代码参考如何在Windows 8.1中使用RenderTargetBitmap