如何在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)上分享。
您可以使用e.p request . data . setbitmap来传输屏幕截图。但是这个方法的参数类型是RandomAccessStreamReference,所以你需要将RenderTargetBitmap转换为RandomAccessStreamReference。
基本思想是:获取像素并将像素写入InMemoryRandomAccessStream。
你可以从文章中找到代码参考如何在Windows 8.1中使用RenderTargetBitmap