private void OnDragDrop(object sender, PlayerControlEventArgs <DragEventArgs> e) { var filter = m_Form.openFileDialog.Filter.Split('|'); var extensions = filter[1].Replace(";", string.Empty).Replace(" ", string.Empty).Split('*'); var files = (string[])e.InputArgs.Data.GetData(DataFormats.FileDrop); if (files == null) { return; } if (files.Length == 1) { string filename = files[0]; if (Directory.Exists(filename)) { var media = GetAllMediaFiles(filename); m_Form.CloseMedia(); m_Form.ClearPlaylist(); m_Form.AddFiles( media.Where(file => extensions.Contains(PathHelper.GetExtension(file.ToLower()))) .OrderBy(f => f, new NaturalSortComparer()) .Where(f => PathHelper.GetExtension(f).Length > 0) .ToArray()); m_Form.SetPlaylistIndex(0); return; } if (IsPlaylistFile(filename)) { m_Form.OpenPlaylist(filename); return; } if (PathHelper.GetExtension(filename).Length < 1 || !extensions.Contains(Path.GetExtension(filename))) { return; } m_Form.ActiveFile(filename); m_Form.SetPlaylistIndex(0); } else { m_Form.AddFiles( files.Where(file => extensions.Contains(PathHelper.GetExtension(file.ToLower()))) .OrderBy(f => f, new NaturalSortComparer()) .Where(f => PathHelper.GetExtension(f).Length > 0) .ToArray()); m_Form.SetPlaylistIndex(0); } e.Handled = true; }