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)); } }
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; } } } }
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; } } } }
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; }
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(); } } }