private void TbvCommandSource_DragRecordOver(object sender, DragRecordOverEventArgs e)
 {
     if (e.IsFromOutside == false)
     {
         e.Effects = DragDropEffects.None;
     }
     e.Handled = true;
 }
 void OnDragRecordOver(object sender, DragRecordOverEventArgs e)
 {
     if (e.IsFromOutside && typeof(Employee).IsAssignableFrom(e.GetRecordType()))
     {
         e.Effects = DragDropEffects.Move;
         e.Handled = true;
     }
 }
示例#3
0
 void OnDragRecordOver(object sender, DragRecordOverEventArgs e)
 {
     if (e.IsFromOutside && e.Data.GetDataPresent(typeof(Employee)))
     {
         e.Effects = DragDropEffects.Move;
         e.Handled = true;
     }
 }
        private void OnDragRecordOver(object sender, DragRecordOverEventArgs e)
        {
            if (e.IsFromOutside && typeof(IUserScript).IsAssignableFrom(e.GetRecordType()))
            {
                e.Effects = DragDropEffects.Move;
            }

            e.Handled = true;
        }
示例#5
0
 void AssociatedObject_DragRecordOver(object sender, DragRecordOverEventArgs e)
 {
     e.Handled = true;
     e.Effects = DragDropEffects.None;
     if (e.IsFromOutside)
     {
         e.Effects = DragDropEffects.Move;
     }
 }
        /// <summary>
        /// Allow file drop feature
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        public object Convert(object sender, object args)
        {
            DragRecordOverEventArgs e = (DragRecordOverEventArgs)args;

            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effects = DragDropEffects.Copy;
                e.Handled = true;
            }
            return(e.Handled);
        }
        void OnDragRecordOver(object sender, DragRecordOverEventArgs e)
        {
            object data   = e.Data.GetData(typeof(RecordDragDropData));
            var    source = ((RecordDragDropData)data).Records[0] as MenuStructureProxy;
            var    target = e.TargetRecord as MenuStructureProxy;

            if ((target.IsRoot && (source == null || source.IsMenu)) ||
                (target.IsMenu && (source == null || source.IsMenu)))
            {
                e.Effects = System.Windows.DragDropEffects.None;
                e.Handled = true;
            }
        }
示例#8
0
        private void AssociatedObject_DragRecordOver(object sender, DragRecordOverEventArgs e)
        {
            try
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop))
                {
                    FileModel target     = e.TargetRecord as FileModel;
                    string    targetPath = target?.IsDirectory == true ? target.FullPath : CurrentFolderPath;

                    if (targetPath == null)
                    {
                        return;
                    }

                    IEnumerable <String> filePaths = e.Data.GetData(DataFormats.FileDrop) as IEnumerable <String>;
                    if (filePaths == null || filePaths.Count() == 0)
                    {
                        return;
                    }

                    bool isTargetRoot       = target?.IsRoot == true;
                    bool isTargetSubFolder  = filePaths.Any(x => targetPath?.OrdinalStartsWith(x + FileSystemHelper.Separator) == true);
                    bool isTargetSameParent = filePaths.Any(x => targetPath?.OrdinalEquals(x) == true || targetPath?.OrdinalEquals(FileSystemHelper.GetParentFolderPath(x)) == true);

                    bool notExists = filePaths.Any(x => !File.Exists(x));
                    bool sameDrive = Path.GetPathRoot(targetPath) == Path.GetPathRoot(filePaths.First());
                    bool copy      = e.KeyStates.HasFlag(DragDropKeyStates.ControlKey) || notExists ||
                                     (sameDrive && Settings.Default.DragDropSameDrive == 1) ||
                                     (!sameDrive && Settings.Default.DragDropDifferentDrive == 0);

                    DragDropEffects allowedEffect = isTargetRoot || isTargetSubFolder || isTargetSameParent ? DragDropEffects.None :
                                                    copy ? DragDropEffects.Copy : DragDropEffects.Move;

                    if (targetPath == CurrentFolderPath)
                    {
                        e.Effects      = allowedEffect;
                        e.DropPosition = DropPosition.Append;
                    }
                    else
                    {
                        e.Effects      = allowedEffect;
                        e.DropPosition = DropPosition.Inside;
                    }
                }
            }
            finally
            {
                e.Handled = true;
            }
        }