ページの AllowDrop を true にする。
最低でも DragEnter と Drop のイベント処理を行う。
DragEnter では ドラッグされてきたデータの種別をチェックし StorageItems であればドロップを受け付けるようにする。
private void Page_DragEnter(object sender, DragEventArgs e)
{
if (e.DataView.Contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.StorageItems)) {
e.DragUIOverride.Caption = "File Open";
e.AcceptedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.Copy;
e.Handled = true;
}
}
Drop イベントでドロップされたファイルの処理を行う。
private async void Page_Drop(object sender, DragEventArgs e)
{
var d = e.GetDeferral();
try {
var files = await e.DataView.GetStorageItemsAsync();
var file = files.First();
Debug.WriteLine(file.Path);
}
catch (Exception){ }
d.Complete();
}