private void DragSourceContainer_MouseMove(object sender, MouseEventArgs e)
        {
            var coordinates = Coordinates(e);

            if (DragManager.DragCandidate != null &&
                DragManager.DragCandidateSponsor == DragSource &&
                !DragManager.IsDragging &&
                coordinates.Distance(mouseDownCoordinates) > 15)
            {
                SelectionManager.ClearSelection();
                DragSource.StartDrag(DragManager.DragCandidate);
                DragManager.MouseMove(e.GetPosition(Designer.Instance.Canvas));
            }
        }
Exemple #2
0
        static void DragSource_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (m_DragInfo != null)
            {
                Point dragStart = m_DragInfo.DragStartPosition;
                Point position  = e.GetPosition(null);

                if (Math.Abs(position.X - dragStart.X) > SystemParameters.MinimumHorizontalDragDistance ||
                    Math.Abs(position.Y - dragStart.Y) > SystemParameters.MinimumVerticalDragDistance)
                {
                    IDragSource dragHandler = GetDragHandler(m_DragInfo.VisualSource);

                    if (dragHandler != null)
                    {
                        dragHandler.StartDrag(m_DragInfo);
                    }
                    else
                    {
                        DefaultDragHandler.StartDrag(m_DragInfo);
                    }

                    if (m_DragInfo.Effects != DragDropEffects.None && m_DragInfo.Data != null)
                    {
                        DataObject data = new DataObject(m_Format.Name, m_DragInfo.Data);
                        System.Windows.DragDrop.DoDragDrop(m_DragInfo.VisualSource, data, m_DragInfo.Effects);
                        m_DragInfo = null;
                    }
                }
            }
        }
Exemple #3
0
        static void DragSource_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (m_DragInfo != null && !m_DragInProgress)
            {
                Point dragStart = m_DragInfo.DragStartPosition;
                Point position  = e.GetPosition(null);

                if (Math.Abs(position.X - dragStart.X) > SystemParameters.MinimumHorizontalDragDistance ||
                    Math.Abs(position.Y - dragStart.Y) > SystemParameters.MinimumVerticalDragDistance)
                {
                    IDragSource dragHandler = GetDragHandler(m_DragInfo.VisualSource);

                    if (dragHandler != null)
                    {
                        dragHandler.StartDrag(m_DragInfo);
                    }
                    else
                    {
                        DefaultDragHandler.StartDrag(m_DragInfo);
                    }

                    if (m_DragInfo.Effects != DragDropEffects.None && m_DragInfo.Data != null)
                    {
                        DataObject data = new DataObject(DataFormat.Name, m_DragInfo.Data);

                        // Auch noch die Daten für den File-DragDrop einbauen

                        StringCollection files = new StringCollection();

                        if (m_DragInfo.Data is Track)
                        {
                            files.Add(((Track)m_DragInfo.Data).Soundfile);
                        }

                        if (files.Count > 0 && !string.IsNullOrEmpty(files[0]))
                        {
                            data.SetFileDropList(files);
                            m_DragInfo.Effects = DragDropEffects.Copy;
                        }

                        try
                        {
                            m_DragInProgress = true;
                            System.Windows.DragDrop.DoDragDrop(m_DragInfo.VisualSource, data, m_DragInfo.Effects);
                        }
                        finally
                        {
                            m_DragInProgress = false;
                        }

                        m_DragInfo = null;
                    }
                }
            }
        }
Exemple #4
0
        private static void DragSource_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (_dragInfo == null || _dragInProgress)
            {
                return;
            }

            Point dragStart = _dragInfo.DragStartPosition;
            Point position  = e.GetPosition(null);

            if (Math.Abs(position.X - dragStart.X) <= SystemParameters.MinimumHorizontalDragDistance &&
                Math.Abs(position.Y - dragStart.Y) <= SystemParameters.MinimumVerticalDragDistance)
            {
                return;
            }

            IDragSource dragHandler = GetDragHandler(_dragInfo.VisualSource);

            if (dragHandler != null)
            {
                dragHandler.StartDrag(_dragInfo);
            }
            else
            {
                DefaultDragHandler.StartDrag(_dragInfo);
            }

            if (_dragInfo.Effects == DragDropEffects.None || _dragInfo.Data == null)
            {
                return;
            }

            var data = new DataObject(DataFormat.Name, _dragInfo.Data);

            try
            {
                _dragInProgress = true;
                System.Windows.DragDrop.DoDragDrop(_dragInfo.VisualSource, data, _dragInfo.Effects);
            }
            finally
            {
                _dragInProgress = false;
            }

            _dragInfo = null;
        }
Exemple #5
0
        static void DragSource_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (m_DragInfo != null && e.LeftButton == MouseButtonState.Pressed)
            {
                Point dragStart = m_DragInfo.DragStartPosition;
                Point position  = e.GetPosition(null);

                if (Math.Abs(position.X - dragStart.X) > SystemParameters.MinimumHorizontalDragDistance ||
                    Math.Abs(position.Y - dragStart.Y) > SystemParameters.MinimumVerticalDragDistance)
                {
                    IDragSource dragHandler = GetDragHandler(m_DragInfo.VisualSource);

                    // drag started
                    argsSaved      = null;
                    sourceItemTemp = null;

                    if (dragHandler != null)
                    {
                        dragHandler.StartDrag(m_DragInfo);
                    }
                    else
                    {
                        DefaultDragHandler.StartDrag(m_DragInfo);
                    }

                    if (m_DragInfo.Effects != DragDropEffects.None && m_DragInfo.Data != null)
                    {
                        DataObject data = new DataObject(m_Format.Name, m_DragInfo.Data);
                        System.Windows.DragDrop.DoDragDrop(m_DragInfo.VisualSource, data, m_DragInfo.Effects);
                        m_DragInfo = null;
                    }
                }
            }
            else
            {
                m_DragInfo = null;

                UIElement element = sender as UIElement;
                if (element.IsMouseCaptured)
                {
                    element.ReleaseMouseCapture();
                }
            }
        }