【问题标题】:How to share image on social Media in WP8.1 Rt?如何在 WP8.1 Rt 的社交媒体上分享图片?
【发布时间】:2015-08-17 10:54:29
【问题描述】:

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

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= 等待 CreateBitmapFromElement(rootcontent); //这里的rootcontent是我需要捕获的网格名称。

在这里我也可以获取图像。但无法共享此捕获的图像。 我读了一些博客,但仍然无法解决。 我想我需要将它转换为 BitmapImage。我怎样才能做到这一点??或者有没有其他最好的方法来处理这个问题。

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

  • 谢谢

【问题讨论】:

    标签: c# windows-runtime windows-phone-8.1


    【解决方案1】:

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

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

    您可以从文章How to use the RenderTargetBitmap in Windows 8.1中找到代码参考。

    【讨论】:

    • 感谢@Jeffrey Chen,我所做的一切与文章中的相同,但仍然无法分享捕获的图像。我在文章代码中只添加了按钮单击事件。这里有什么问题吗,private void Share_Click(object sender, RoutedEventArgs e) { Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI(); }
    • @Jayanta,除了正确设置分享源外,分享目标还需要支持接收位图内容。见msdn.microsoft.com/en-us/library/windows/apps/xaml/…
    • 感谢@Jeffrey Chen,我仍然无法解决我在 package.appxmanifest 中修改的问题,如文章中所述。但是没看懂其他的。您能否提供我需要在此处添加的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多