UWP 拖拽事件

DragOver

        private void GridView_DragOver(object sender, DragEventArgs e)
        {
            e.AcceptedOperation = DataPackageOperation.Copy;
        }

Drop

        private async void GridView_Drop(object sender, DragEventArgs e)
        {
            var item = await e.DataView.GetStorageItemsAsync();
            if (item.Any())
            {
                var file = item[0] as StorageFile;
                var types = new[] { ".mp3", ".wav",".m4a" };
                if (types.Contains(file.FileType))
                {
                    MediaPlayer.Stop();
                    StorageFolder folder = ApplicationData.Current.LocalFolder;
                    var files = await folder.GetFilesAsync();
                    foreach (var storageFile in files)
                    {
                        await storageFile.DeleteAsync();
                    }
                    //uwp不能访问电脑上的路径,所以要复制到uwp的运行目录下
                    var newFile = await file.CopyAsync(folder, file.Name, NameCollisionOption.GenerateUniqueName);
                    MediaPlayer.SetSource(await newFile.OpenAsync(FileAccessMode.Read), "");
                }
            }
        }

 

posted on 2017-04-04 17:02  jmlsaul  阅读(453)  评论(0)    收藏  举报