Share two different things in Windows Phone 8.1 C#

て烟熏妆下的殇ゞ 提交于 2020-01-04 17:29:32

问题


I want to share two seperate images on two seperat button clicks. Until now I have used this code

protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            //showPuzzle();
            DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView();
            dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.DataRequested);
        }

private async void DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
        {
            DataRequest request = args.Request;
            request.Data.Properties.Title = "c this";
            request.Data.Properties.ApplicationName = "";
            DataRequestDeferral deferral = request.GetDeferral();

            // Make sure we always call Complete on the deferral.
            try
            {
                StorageFile imagefile = await KnownFolders.PicturesLibrary.GetFileAsync("pic.jpg");
                List<IStorageItem> storageItems = new List<IStorageItem>();
                storageItems.Add(imagefile);
                request.Data.SetStorageItems(storageItems);
            }
            finally
            {
                deferral.Complete();
            } 
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
  Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();

        }

This works well for one button tap but how to do for sharing another image (say pic1.jpg)


回答1:


You can define a private member of the page which contains the name of the image to be shared and set this name on each button click. Example:

  private string imageName = "pic.jpg";

  private void Button_Click(object sender, RoutedEventArgs e)
  {
    imageName = "pic.jpg";
    Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();
  }

  private void Button1_Click(object sender, RoutedEventArgs e)
  {
    imageName = "pic1.jpg";
    Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();
  }

and in DataRequested() instead of hardcoding the name of the file, use the name from the private member



来源:https://stackoverflow.com/questions/25463373/share-two-different-things-in-windows-phone-8-1-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!