Beispiel #1
0
        private void FileListBox_Drop(object sender, DragEventArgs e)
        {
           if (e.Data.GetDataPresent(DataFormats.FileDrop, true))
            {
                string[] droppedFilePaths = e.Data.GetData(DataFormats.FileDrop, true) as string[];
                foreach(string filemask in FileMask)
                {
                    for (var i = 0; i < droppedFilePaths.Length; i++)
                    {
                        if (Path.GetExtension(droppedFilePaths[i]) == filemask)
                        {
                            ListBoxFileName filename = new ListBoxFileName();
                            filename.FileName = droppedFilePaths[i];
                            filename.FileIsSelected = false;
                            //SelectedItems.Add(filename);
                        }
                    }
                }
            }

            DependencyObject child = e.OriginalSource as DependencyObject;
            
            var dataObj = e.Data as DataObject;
            var dragSource = e.Data.GetData("DragSource") as FileSelector;

            if (dragSource != null)
            {
                string dragFileSelectorSourceName = dragSource.Name.ToString();
                string dragFileSelectorTargetName = Utils.FindParent<FileSelector>(child).Name.ToString();

                string dragChannelControlsSourceName =  Utils.FindParent<Views.LayerControls>(dragSource).Name.ToString();
                string dragChannelControlsTargetName = Utils.FindParent<Views.LayerControls>(child).Name.ToString();

                List<ListBoxFileName> FileNames = dataObj.GetData(typeof(List<ListBoxFileName>)) as List<ListBoxFileName>;

                if (dragChannelControlsSourceName != dragChannelControlsTargetName || dragFileSelectorSourceName != dragFileSelectorTargetName)
                {
                    foreach (var Files in FileNames)
                    {
                            ListBoxFileName CopiedFileName = Files.Clone() as ListBoxFileName;
                            CopiedFileName.FileIsSelected = false;
                        SelectedItems.Add(CopiedFileName);
                    }
                }
            }
        }
Beispiel #2
0
        private void FileListBox_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (_isMouseDown == true && IsDragGesture(e.GetPosition(e.Source as FrameworkElement)))
            {

                if (_dragged == null)
                    return;
                if (e.LeftButton == MouseButtonState.Released)
                {
                    _dragged = null;
                    return;
                }

                List<ListBoxFileName> _draggedList = new List<ListBoxFileName>();
                if (_dragged.IsSelected == true)
                {
                    
                    for (var i = 0; i < FileNameList.SelectedItems.Count; i++)
                    {
                        _draggedList.Add(FileNameList.SelectedItems[i] as ListBoxFileName);
                    }

                    var dragData = new DataObject(typeof(List<ListBoxFileName>), _draggedList);
                    var dragSource = this;
                    dragData.SetData("DragSource", dragSource);
                    DragDrop.DoDragDrop(_dragged, dragData, DragDropEffects.All);
                }
                else
                {
                    ListBoxFileName lb = _dragged.Content as ListBoxFileName;
                    _draggedList.Add(lb);
                    var dragData = new DataObject(typeof(List<ListBoxFileName>), _draggedList);
                    var dragSource = this;
                    dragData.SetData("DragSource", dragSource);
                    DragDrop.DoDragDrop(_dragged, dragData, DragDropEffects.All);
                }

            }
        }