using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Windows.ApplicationModel.DataTransfer;
using Windows.Storage;
namespace WpfShareSource
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public enum ShareMode
{
Blank,
Text,
Weblink,
StorageItem
}
ShareMode currentShareMode = ShareMode.Blank;
public MainWindow()
{
InitializeComponent();
}
void Window_Loaded(object sender, RoutedEventArgs e)
{
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
var dtm = DataTransferManagerHelper.GetForWindow(hwnd);
dtm.DataRequested += OnDataRequested;
}
async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args)
{
var deferral = args.Request.GetDeferral();
try
{
DataPackage dp = args.Request.Data;
dp.Properties.Title = DataPackageTitle.Text;
switch (currentShareMode)
{
case ShareMode.Text:
dp.SetText(DataPackageText.Text);
break;
case ShareMode.Weblink:
dp.SetWebLink(new System.Uri(DataPackageWeblink.Text));
break;
case ShareMode.StorageItem:
var filesToShare = new List();
StorageFile imageFile = await StorageFile.GetFileFromPathAsync(AppDomain.CurrentDomain.BaseDirectory + "Images\\image.jpg");
filesToShare.Add(imageFile);
dp.SetStorageItems(filesToShare);
break;
}
}
finally
{
deferral.Complete();
}
}
private void ShareTextButton_Click(object sender, RoutedEventArgs e)
{
currentShareMode = ShareMode.Text;
ShowShareUI();
}
private void ShareWeblinkButton_Click_1(object sender, RoutedEventArgs e)
{
currentShareMode = ShareMode.Weblink;
ShowShareUI();
}
private void ShareImageButton_Click(object sender, RoutedEventArgs e)
{
currentShareMode = ShareMode.StorageItem;
ShowShareUI();
}
private void ShowShareUI()
{
IntPtr hwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
DataTransferManagerHelper.ShowShareUIForWindow(hwnd);
}
}
}